git stash | 临时仓库

314 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第2天

大家好,我是朝朝,我的猫想当猫主子,但是它只能当猫崽仔,只能跟着我过苦日子了哈哈。

事情是这样子的,今天我开发完想提交,看到同事已经提交了一版。

此时是我本地有没有staged的代码,远程有一个没有拉取的代码

我采用的方法是:

  1. 先执行 add commit 保存好本地的代码
  2. 再pull远程的代码
  3. 发生冲突,解决冲突,再commit
  4. 一键push

此时就会有两条push记录

60bfe2aac42fe579ad23daecd3831c6.png 一条是我开发完提交的,一条是合并代码之后的提交,咱就是说,大功告成

but 公司用的是gerrit,需要审核才能真正合并到分支上,提交的第一条会有冲突,有冲突的一条是不会被通过的

撤回重新提交

目前想到的是,先拉取到最新代码,再提交自己的代码

使用stash临时仓库保存没有提交的代码

  1. git stash 先把自己的代码保存到暂存区,工作区会保持上次commit的状态

命令用于暂时保存没有提交的工作。运行该命令后,所有没有commit的代码,都会暂时从工作区移除,回到上次commit时的状态。

  1. git pull 拉取远程代码

  2. git stash pop 把暂存区的代码弹出来回到工作区,会自动合并,冲突部分需要手动合并

    git reset --hard 可以撤销stash pop操作

  3. 正常的提交,可以选择清除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 教程

菜鸟文章,有误请指出,希望还有下一回见

image.png