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.

私はこれを見るのに本当にうんざりしています:

グロス:a

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 に答える