1

直到现在,我曾经这样做:'git pull origin master',如果有东西要合并,我会得到一个错误,然后我可以使用'git mergetool'(加载 p4merge)来合并文件。

现在它只写快进并自动合并我的文件:

 * branch            master     -> FETCH_HEAD
Updating 508eb2e..b93d761
Fast-forward
 protected/controllers/AlbumController.php      |   14 +-
 protected/controllers/AlbumController.php.orig |  103 +++
 etc.

问题是,我没有做任何特别的事情来允许自动合并。为什么会发生这种情况,我该如何禁用它?

4

3 回答 3

4

你似乎很困惑。“快进”意味着它没有合并。这意味着您没有本地提交,因此它只是将您的分支指针转发到您拉取的内容的尖端。

于 2012-05-28T21:24:33.790 回答
1

你没有什么可以合并的。因此,它只会更新您的分支以指向您要合并的分支指向的位置。您的工作目录现在将更新以代表您的分支指向的新位置。这就是“覆盖”您的文件的原因。为什么您希望您的工作目录的文件在合并其他更改后不会被覆盖(无论它是否是快进情况)。

--no-ff附带说明一下,如果您确实想保留分支点,则可以通过将选项添加到合并命令来强制 git 创建新的提交,即使由于快速转发而没有必要。

我还建议阅读有关分支和合并的 progit.org/book。这是设计使然。

于 2012-05-28T21:50:01.550 回答
1

“快进”意味着您没有在本地进行任何不在远程存储库上的提交。

这意味着没有什么可以合并的;您当地的已签出分支刚刚更新。

diff-stat 只是用来告诉您自上次拉动以来在遥控器中进行了哪些更改。

于 2012-05-28T21:26:21.817 回答