Git进阶操作 - littleboy12580/learning_python GitHub Wiki
合并提交
git rebase -i HEAD~3 #表示将最新的前3次提交合并在一起
使用上述命令后出现界面,将界面里的pick除第一个以外都改为squash
撤销提交
git reset --hard commit_id #将本地库退回至给的id号那时候的状态
应用提交
git cherry-pick commit_id #将某个id号的提交应用到当前分支
推送本地分支到远程新分支上
git push origin local_branch:remote_branch
git stash命令
git stash
备份当前的工作区的内容,从最近的一次提交中读取相关内容,让工作区保证和上次提交的内容一致。同时,将当前的工作区内容保存到Git栈中
git stash pop
从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复
git stash list
显示Git栈内的所有备份,可以利用这个列表来决定从那个地方恢复
git stash clear
清空Git栈。此时使用gitg等图形化工具会发现,原来stash的哪些节点都消失了
使用场合
使用git的时候,我们往往使用branch解决任务切换问题,例如,我们往往会建一个自己的分支去修改和调试代码, 如果别人或者自己发现原有的分支上有个不得不修改的bug,我们往往会把完成一半的代码 commit提交到本地仓库,然后切换分支去修改bug,改好之后再切换回来。这样的话往往log上会有大量不必要的记录。其实如果我们不想提交完成一半或者不完善的代码,但是却不得不去修改一个紧急Bug,那么使用'git stash'就可以将你当前未提交到本地(和服务器)的代码推入到Git的栈中,这时候你的工作区间和上一次提交的内容是完全一样的,所以你可以放心的修 Bug,等到修完Bug,提交到服务器上后,再使用'git stash apply'将以前一半的工作应用回来
参考链接
http://www.cppblog.com/deercoder/archive/2011/11/13/160007.aspx
git show
查询某次提交的修改内容,后面接commit id
git commit --amend
修改某次提交的注释