Git:如何创建不同的未合并状态?

mkl*_*mnn 12 git git-status

何时git status发生不同的未合并状态added by us,added by them或者both deleted

我试图通过执行合并来重现后者,其中文件已在当前和合并分支中删除,但我无法创建此状态.

Mar*_*ato 17

您可以通过在每个分支中以不同方式重命名文件来获取所有这三个.

git init
touch foo
git add foo
git commit -m 'initial commit'
git checkout -b tmp
git mv foo X
git commit -m 'rename to X'
git checkout -
git mv foo Y
git commit -m 'rename to Y'
git merge tmp
Run Code Online (Sandbox Code Playgroud)

现在你有三个州.

$ git status
# On branch master
# Unmerged paths:
#   (use "git add/rm ..." as appropriate to mark resolution)
#
#       added by them:      X
#       added by us:        Y
#       both deleted:       foo
#
no changes added to commit (use "git add" and/or "git commit -a")

  • 另外 - 你的例子教我`git checkout -`,就像`cd -`; 它意味着"在切换到这个之前检查我所在的分支." 对于其他任何发现这一点的人来说,它只能在两个分支之间切换; 它没有保持历史. (5认同)
  • 从Git 1.9.3开始,此示例似乎不再起作用:不生成合并冲突. (2认同)