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合并为一个