git部分命令实战总结【原创】
git stash 一般与git stash pop 一起配合使用 前者的作用是把当前git add . 命令操作过的文件压入堆栈,后者是从堆栈取出,举例:
当前正在dev分支开发功能A代码尚未提交push到远程,突然产品告诉你说dev有个严重的bug需要立即处理,但是你当前的dev上有尚未开发完成的代码,且不能与当前bug修改一起发布,此时你可运行如下命令
git add .
git stash
执行完这两个命令之后就可以把dev恢复到尚未开发A的状态,修复万bug 且push到远程之后执行如下命令即可
git stash pop
此时代码又恢复到功能A尚未开发完成的状态如下,会详细列出分支提交记录树
gitk 在git bash下运行该命令会弹出一个界面,在这个界面上可以看到详细的提交记录和信息
git reflog 执行该命令可以查看所有的提交记录和唯一id git reflog 分支名称可以看到当前分支提交日志
git cherry-pick 该命令和 git merge有类似之处,不同之处入下:
main分支分出dev和uat分支此时dev经过多次提交dev->dev1->dev2->dev3,当执行git merge dev之后dev1=>dev3的所有改动都会merge 到uat ,如果执行git cherry-pick dev 此时dev1=>dev3所有的改动都会合并到uat 但是如果此时执行的是git cherry-pick dev2的 commit id 此时只会合并dev2的改动到uat
git fetch 和Git pull有点类似git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中,而git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决