首页 » 服务器端 »

程序员必备:Git 常用命令

2020年08月17日 服务器端 4459 views 0 0

扫一扫用手机浏览


什么是Git?

Git是免费、开源的分布式版本控制系统,可以有效、高速地处理项目的版本管理。


Git是每位程序员必备的基础,为了快捷和方便 通常使用TortoiseGit、 smartGit等工具 ,但是git命令还是必备的


日常开发中,Git的基本常用命令

  • git clone
  • git checkout -b dev
  • git add
  • git commit
  • git log
  • git diff
  • git status
  • git pull/git fetch
  • git push

git clone

第一步 克隆远程版本库到本地

 git clone url  克隆远程版本库


git checkout -b dev

新建分支dev

 git checkout -b dev   创建开发分支dev,并切换到该分支下



git add

添加到暂存区

git add . 添加当前目录的所有文件到暂存区
   
git add [dir] 添加指定目录到暂存区,包括子目录
   
git add [file1] 添加指定文件到暂存区
git add index.php  把index.php 文件添加到暂存区去


git commit

提交到本地仓库


git commit -m [message] 提交暂存区到仓库区,message为说明信息

git commit [file1] -m [message] 提交暂存区的指定文件到本地仓库

git commit --amend -m [message] 使用一次新的commit,替代上一次提交
git commit -m '第一次提交'


git status

查看工作区状态


git status  查看当前工作区暂存区变动

git status -s  查看当前工作区暂存区变动,概要信息

git status  --show-stash 查询工作区中是否有stash(暂存的文件)

git log

查看提交历史/提交日志


git log  查看提交历史

git log --oneline 以精简模式显示查看提交历史

git log -p <file> 查看指定文件的提交历史

git blame <file> 一列表方式查看指定文件的提交历史


git diff

git diff 显示暂存区和工作区的差异

git diff filepath   filepath路径文件中,工作区与暂存区的比较差异

git diff HEAD filepath 工作区与HEAD ( 当前工作分支)的比较差异

git diff branchName filepath 当前分支的文件与branchName分支的文件的比较差异

git diff commitId filepath 与某一次提交的比较差异

用git diff可以对比一下文件修改差异


git pull/git fetch


git pull  拉取远程仓库所有分支更新并合并到本地分支。

git pull origin master 将远程master分支合并到当前本地分支

git pull origin master:master 将远程master分支合并到当前本地master分支,冒号后面表示本地分支

git fetch --all  拉取所有远端的最新代码

git fetch origin master 拉取远程最新master分支代码


用git pull拉取最新代码 解决一下冲突,再推送代码到远程仓库的


git push

git push 可以推送本地分支、标签到远程仓库,也可以删除远程分支
git push origin master 将本地分支的更新全部推送到远程仓库master分支。

git push origin -d <branchname>   删除远程branchname分支

git push --tags 推送所有标签


Git进阶之分支处理

Git一般都是存在多个分支的,开发分支,回归测试分支以及主干分支等


  • git branch
  • git checkout
  • git merge

git branch

新建分支、查看分支、删除分支等等、

新建分支:


git checkout -b dev2  新建一个分支,并且切换到新的分支dev2

git branch dev2 新建一个分支,但是仍停留在原来分支

查看分支:

git branch    查看本地所有的分支

git branch -r  查看所有远程的分支

git branch -a  查看所有远程分支和本地分支

删除分支:

git branch -D <branchname>  删除本地branchname分支

git checkout

切换分支:

git checkout master 切换到master分支


git merge

合并分支

git merge master  在当前分支上合并master分支过来

git merge --no-ff origin/dev  在当前分支上合并远程分支dev

git merge --abort 终止本次merge,并回到merge前的状态


Git进阶之撤销与回退

  • git checkout
  • git reset
  • git revert

git checkout

如果文件还在工作区,还没添加到暂存区,可以使用git checkout撤销、

git checkout [file]  丢弃某个文件file
git checkout .  丢弃所有文件


git reset

git reset的作用是修改HEAD的位置,即将HEAD指向的位置改变为之前存在的某个版本.

git reset的使用


git reset HEAD --file回退暂存区里的某个文件,回退到当前版本工作区状态

git reset –-soft 目标版本号 可以把版本库上的提交回退到暂存区,修改记录保留

git reset –-mixed 目标版本号 可以把版本库上的提交回退到工作区,修改记录保留

git reset –-hard  可以把版本库上的提交彻底回退,修改的记录全部revert。


例:代码git add到暂存区,并未commit提交,可以这样回退

git reset HEAD file 取消暂存

git checkout file 撤销修改

例:代码已经git commit了,但是还没有push

git log  获取到想要回退的commit_id

git reset --hard commit_id  想回到过去,回到过去的commit_id


如果代码已经push到远程仓库了可以使用reset回滚


git log 

git reset --hard commit_id 

git push origin HEAD --force


git revert

与git reset不同的是,revert复制了那个想要回退到的历史版本,将它加在当前分支的最前端。


如果代码已经推送到远程的话,还可以考虑revert回滚


git log  得到你需要回退一次提交的commit id 

git revert -n <commit_id>  撤销指定的版本,撤销也会作为一次提交进行保存


Git进阶之标签tag

打tag就是对发布的版本标注一个版本号,如果版本发布有问题,就把该版本拉取出来,修复bug,再合回去。


git tag  列出所有tag 

git tag [tag] 新建一个tag在当前commit 

git tag [tag] [commit] 新建一个tag在指定commit 

git tag -d [tag] 删除本地tag 

git push origin [tag] 推送tag到远程 

git show [tag] 查看tag 

git checkout -b [branch] [tag] 新建一个分支,指向某个tag


Git其他一些命令

git rebase

rebase又称为衍合,是合并的另外一种选择。

git stash

stash命令可用于临时保存和恢复修改

git stash  把当前的工作隐藏起来 等以后恢复现场后继续工作 
git stash list 显示保存的工作进度列表 
git stash pop stash@{num} 恢复工作进度到工作区 
git stash show :显示做了哪些改动 
git stash drop stash@{num} :删除一条保存的工作进度 
git stash clear 删除所有缓存的stash。

git reflog

显示当前分支的最近几次提交


git blame filepath

git blame 记录了某个文件的更改历史和更改人,可以查看背锅人,哈哈


git remote


git remote   查看关联的远程仓库的名称 

git remote add url   添加一个远程仓库 

git remote show [remote] 显示某个远程仓库的信息


赞(0
  • 微信
  • 支付宝

感谢您的支持!点击关闭

注:本文为原创文章,转载、复制等操作,请注明地址来源

发表评论