携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天
大家好,我是朝朝,我的猫想当猫主子,但是它只能当猫崽仔,只能跟着我过苦日子了哈哈。
事情是这样子的,今天我开发完想提交,看到同事已经提交了一版。
此时是我本地有没有staged的代码,远程有一个没有拉取的代码。
我采用的方法是:
- 先执行 add commit 保存好本地的代码
- 再pull远程的代码
- 发生冲突,解决冲突,再commit
- 一键push
此时就会有两条push记录
一条是我开发完提交的,一条是合并代码之后的提交,咱就是说,大功告成
but 公司用的是gerrit,需要审核才能真正合并到分支上,提交的第一条会有冲突,有冲突的一条是不会被通过的
撤回重新提交
目前想到的是,先拉取到最新代码,再提交自己的代码
使用stash临时仓库保存没有提交的代码
- git stash 先把自己的代码保存到暂存区,工作区会保持上次commit的状态
命令用于暂时保存没有提交的工作。运行该命令后,所有没有commit的代码,都会暂时从工作区移除,回到上次commit时的状态。
-
git pull 拉取远程代码
-
git stash pop 把暂存区的代码弹出来回到工作区,会自动合并,冲突部分需要手动合并
git reset --hard 可以撤销stash pop操作 -
正常的提交,可以选择清除stash里面记录
远程只有一条push记录,解决
除上面的命令之外,还有一些常见的命令
git stash // 暂时保存没有提交的工作
git stash list // 列出所有暂时保存的工作
git stash apply stash@{n} // 恢复某个暂时保存的工作
git stash pop // 恢复最近一次stash的文件
git stash drop // 丢弃最近一次stash的文件
it stash clear // 删除所有的stash
参考文章:阮一峰 Git 教程
菜鸟文章,有误请指出,希望还有下一回见