10

有没有办法让 git 总是在没有快进的情况下合并,除了拉动时?

在一个不错的 git-flow 之后,我喜欢保留我的分支历史记录(以后更容易删除功能等),所以我将我的配置设置为在合并时从不快进,如下所示:

git config --global merge.ff false

但是,每当我从远程更新我当前的分支/拉取时,它都会创建一个合并提交......这真的很恶心,特别是对于在GitHub 上分叉其他项目时。

有没有办法git pull 总是快进?不幸的是,我尝试这样做:

git pull --ff-only upstream master

...只是看着它吐出一个错误:

fatal: You cannot combine --no-ff with --ff-only.

我真的厌倦了看到这个:

毛:一

4

2 回答 2

10

你可以试试这个:

git pull --rebase upstream master

这会将您的提交重新设置在上游提交之上。

这是它的作用的说明。

您的本地存储库:

* bbbbbbb (HEAD, master) My changes.
* aaaaaaa Initial commit.

上游仓库:

* ccccccc (upstream/master) Their changes.
* aaaaaaa Initial commit.

之后git pull --rebase upstream master

* bbbbbbb (HEAD, master) My changes.
* ccccccc (upstream/master) Their changes.
* aaaaaaa Initial commit.
于 2012-11-28T04:54:34.830 回答
1

我建议你在一个单独的分支中工作,并继续重新定位到远程分支而不是合并。

改变:

$ git checkout -b my-topic-branch
$ (work work work)
$ git commit
$ git checkout master
$ git pull origin master
$ git merge my-topic-branch

经过:

$ git checkout -b my-topic-branch
$ (work work work)
$ git commit
$ git fetch origin
$ git rebase origin/master
$ git checkout master
$ git merge my-topic-branch

如果这种配置组合不起作用,我认为你只剩下这个了。

于 2012-11-28T04:16:02.187 回答