命令整理
git stash
工作区暂存
使用场景:在dev1分支开发正酣时,突然被告知提测的另一个需求有bug,需要切到dev2分支进行修改,怎么办?dev1分支的代码没写完,不能提交,好气。别慌,git stash
可以将工作区进行暂存,等到dev2的代码改完,再回到dev1时,可以通过git stash pop
取出暂存区的内容,默认是取出栈顶内容
git stash //把本地改动缓存
git stash save "message" // 暂存时增加备注
git stash pop // 取出暂存,默认栈顶,并删除暂存记录
git stash apply // 应用某个暂存,但是不删除暂存记录,默认栈顶,可添加参数stash@{$num}指定第几项
git stash list // 查看暂存列表
git stash clear // 删除暂存列表
git cherry-pick <commit-id>
获取指定提交进行合并
使用场景:开发分支有多个提交,但是主干并不需要合并所有的提交,只需要其中某几个提交,通过git log --oneline
查到开发分支中所有的提交记录,再通过git cherry-pick <commit-id>
合并一次提交,遇到冲突可通过git add
和git cherry-pick --continue
继续。
git revert <commit-id>
通过新增一条提交记录回滚某次提交,不会修改之前的提交记录
如果有冲突,通过git add
和git revert --continue
继续
git reset <commit-id>
直接回退到指定提交 将本地代码进行回退到指定提交,该提交之后的所有提交均作为未pull的提交(远端有本地无,需要pull)。
建议:个人开发分支可用,合作开发分支勿用。
git diff
比较变更
git diff
// 比较工作区与本地缓存区的代码修改
git diff <commit-id1> <commit-id2>
// 比较两次提交之间的变更
git diff <branch-name> <branch-name>
// 比较两个分支之间的变更
git diff --stat
// 获取简单的变更结果
本地开发撤销操作
撤销未commit文件修改&撤销commit的文件
git status
// 查看git状态
git checkout <filename>
// 撤销未commit文件的修改
git reset --soft HEAD^
// 撤销最近一次的commit
git reset <filename>
// 撤销已commit文件的修改