切换分支以及移动已提交但未提交的提交

时间:2014-10-01 18:16:34

标签: git

我读了几篇关于此的帖子,但需要一些澄清。我看到我可以使用

在我的本地分支中获得未提交的提交
    git log origin/master..HEAD

当我从一个分支移动到另一个分支时,有没有办法自动应用未删除的提交(即使我们必须解决合并冲突,如果有的话)到移动到分支上?

此外,在我的本地分支上,当我有未经修改的更改,并且我签出了一个不同的分支时,未提交的更改将被移动到move-to分支,但是git文档说这会引发错误。这是设置在配置中的某个位置吗?为什么我没有看到错误?

 $ git checkout mytopic
 error: You have local changes to 'frotz'; not switching branches.

2 个答案:

答案 0 :(得分:1)

没有自动方式来应用未提交的提交。您可以使用

手动完成
git rebase --onto

根据您要完成的任务,您可能需要创建临时分支或执行一些快进合并操作。这取决于您是否要保留提交的两个副本。

对于你的第二个问题 - 我个人并不喜欢git checkout以这种方式运作,但我相信如果您修改的文件在您要切换的分支上有变化,它会抱怨。否则它什么也没说。

答案 1 :(得分:0)

  

当我从一个分支移动到另一个分支时,有没有办法自动应用未删除的提交(即使我们必须解决合并冲突,如果有的话)到移动到分支上?

如果您想移动提交到另一个分支,那么您可以使用git rebase。否则,您很可能只想git merge第一个分支与另一个分支。

  

此外,在我的本地分支上,当我有未经修改的更改,并且我签出了一个不同的分支时,未提交的更改将被移动到move-to分支,但是git文档说这会引发错误。这是设置在配置中的某个位置吗?为什么我没有看到错误?

这取决于您所做的本地更改以及您要迁移到的分支中的更改。如果存在合并冲突,则会出现错误。如果没有合并冲突,那么您可以检查分支而不会出现任何错误。

相关问题