git stash和git pull

Lol*_*lly 73 git git-stash egit

我是Git的新手,我正在使用EGit eclipse插件来提交.

我修改了几个文件,然后我修改了这些更改,然后我git pull在命令行中完成了所有最新的提交.然后我Apply stashed changes从EGit 做了.现在它应用了我的更改,并且从上次提交的存储文件中提取的更改消失了.我不确定为什么它没有问我合并冲突并覆盖我的更改并丢失了以前的提交更改.

如何获得这些变化?

yil*_*yin 171

如果对工作副本进行了更改,请从命令行执行以下操作:

git stash 
Run Code Online (Sandbox Code Playgroud)

这将隐藏您的更改并清除您的状态报告

git pull
Run Code Online (Sandbox Code Playgroud)

这将从上游分支中获取更改.确保在报告中说出快进.如果没有,您可能正在进行意外的合并

git stash pop
Run Code Online (Sandbox Code Playgroud)

除非您有冲突,否则这会将隐藏的更改应用回工作副本并从存储中删除更改.如果发生冲突,他们将留在藏匿处,以便您可以在需要时重新开始.

如果您需要查看藏匿物中的物品

git stash list
Run Code Online (Sandbox Code Playgroud)

  • 如果使用Git v2.9.0或更高版本,请尝试`git pull --rebase --autostash`.[FYI(https://git-scm.com/docs/git-pull/2.9.0#git-pull---autostash) (6认同)
  • 是否有可能在一个命令中完成它? (4认同)
  • 我想这会做到:`git stash && git pull && git stash pop` (4认同)

leo*_*ess 20

而是使用:

git pull --autostash
Run Code Online (Sandbox Code Playgroud)