相关文章推荐
微醺的开水瓶  ·  git subtree pull 错误 ...·  3 周前    · 
很拉风的罐头  ·  vscode git blame - CSDN文库·  2 周前    · 
另类的火柴  ·  CGAL user manual - 2D ...·  3 月前    · 
考研的大脸猫  ·  Vue - ...·  5 月前    · 
冷冷的茄子  ·  dotnet the imported ...·  1 年前    · 
大气的鼠标  ·  shell编程 - 知乎·  1 年前    · 

git 作为一个应用性超广的代码托管软件较SVN还是方便多了,自项目组去年10月份从SVN切换到git以来已经在实际开发过程中使用git来进行已经过去一段时间了。相较于之前自己在学校里面只会用git bash用命令行进行git操作,这段时间还是学习总结了一些git命令对应的IDEA中git图形界面的操作,感觉还是挺方便的。下面就介绍一些个人整理总结的操作。

一、分支管理

1. 分支切换

git bash:

git checkout branchName

IDEA操作:

2. 新建分支

2.1 从branchName-1分支新建出一个branchName-2本地分支

git bash:

git checkout branchName-1
git checkout –b branchName-2

IDEA操作:

2.2 从远程branchName分支关联一个本地新建branchName分支

git bash:

git pull
git checkout branchName

IDEA操作:

3 分支删除

删除本地分支: git bash:

git branch –d branchName

IDEA操作:

删除远程分支:

git bash:

// 删除远程分支在本地的记录
git branch -r -d origin/ branchName
// 注意这里origin和冒号之间有一个空格,表示推送本地的一个空分支(冒号前面的)分支到远程origin的feature-branch(冒号后面的)分支及删除远程分支
git push origin : branchName

4 分支merge,branchName-1 merge到 branchName-2

git bash:

git checkout branchName-1
git merge branchName-2

IDEA操作: 切换到branchName-1分支

二、代码回退

1. 回退工作区代码

git bash:

git checkout givenFile

IDEA 操作:

回退单个文件

回退代码段

2. 本地分支回退到历史版本

git bash:

git log  // 查看要回退到的历史版本的Commit ID
git reset –hard Commit ID

IDEA操作:

3. 远程分支回退到历史版本

git bash:

git log  // 查看要回退到的历史版本的Commit ID
git reset –hard Commit ID  // 回退本地分支
git push -f origin branchName  // 强制推送到远程分支

三、stash(缓存)功能

git stash用于保存当前工作进度。比较常用的场景就是在开发分支开发特性的时候紧急修复release分支的严重bug。这个时候便可以用使用 git stash将当前修改(未提交的代码)存入缓存区,切换分支修改 bug, 回来后再通过git stash pop将之前缓存的修改取出来。

git bash:

git stash 
git stash save “message...”  // 功能同上可以添加一些备注
git stash show  // 查看缓存的修改
git stash list  // 查看缓存区中所有缓存记录
git stash pop  // 取出缓存区栈顶的记录

IDEA操作:

四、提交查看(bug追踪)功能

IDEA -> Version Control -> Log,可以指定所要查看的分支,提交人,时间,文件或文件夹。

1. 查看某个文件的提交记录

git bash:

git log workSpace/src/main/java/javaop/BaseOpTest.java

IDEA操作: 右击代码文件空白处

2. 查看某一行代码的修改历史

git bash:

// -L s,e 表示第s行第e行
git blame -L 1,1000 workSpace/src/main/java/javaop/BaseOpTest.java

IDEA 操作: 右击代码文件空白处

五、将多次commit合并为一个

如图,有多次同一个bug的多次bugfix commit,我想把它们合并成一个commit。

打开IDEA的log history

右键如图提交记录3(需要进行合并的上一个提交),菜单Copy Revision Number复制commit ID

菜单VCS->Git->Rebase,勾上Interactive,Onto粘贴第2步中复制的commit

五、将多次commit合并为一个