在执行git pull
时,是否有选项可以完全避免合并冲突的可能性?我查看了合并策略,但没有一个满足这个描述。我正在寻找像git pull --quit_if_possible_merge
这样的选项。
基本上,希望有一个命令可以将内容拉到生产站点,而不会有任何合并冲突的风险,因为这可能会导致站点暂时下线,直到我们解决它。
在执行git pull
时,是否有选项可以完全避免合并冲突的可能性?我查看了合并策略,但没有一个满足这个描述。我正在寻找像git pull --quit_if_possible_merge
这样的选项。
基本上,希望有一个命令可以将内容拉到生产站点,而不会有任何合并冲突的风险,因为这可能会导致站点暂时下线,直到我们解决它。
怎么样:
git pull --ff-only
如果其他答案所说的是真的,那么这应该会产生期望中的效果。不是吗?
--ff-only
标记代表 "快进"(Git 如何称呼其中一个合并分支包含另一个分支的所有提交(严格超集)的情况)。这很特殊,因为这意味着不可能出现合并冲突。位于前方的分支上的提交只需添加到另一个分支上,所有人都会很高兴。
git pull --ff-only
呢? - Michael Miorpull
。已经编辑过了。 - emersonthis正如其他人所说: 只有在本地仓库中提交了任何内容才会出现合并冲突。如果没有提交任何内容,您将不会遇到任何合并冲突。
如果您没有提交任何内容,但您在本地git仓库中工作,即更改文件或创建新文件,则git pull
仍会使您陷入麻烦,因为它需要更新您修改的文件。 - 因此,请勿直接在本地仓库中工作,这样就可以避免问题。
接下来,如果您坚持在本地仓库中工作,并考虑使用git pull
更新文件。您必须决定如何处理您修改的文件。
如果您只想放弃所有本地更改,只需获取远程存储库中的文件,您可以执行git fetch;git reset --hard @{u}
。
git merge -ff-only branch_to_merge_into_this_one
Git 2.0(2014年第二季度)在commit b814da8中添加了一个名为push.ff
的新设置:
在您的情况下:
git config push.ff only
pull.ff::
false
时,此变量告诉Git在这种情况下创建额外的合并提交(等同于使用命令行中的--no-ff
选项)。
当将其设置为only
时,只允许此类快速前进合并(等同于使用命令行中的--ff-only
选项)。