3

これについてSOに多くの質問があることは知っていますが、探している答えがまったく見つからないようです。

タスク ブランチをマスターにマージしたので、変更をリモート マスター ブランチにプッシュする準備ができました。ただし、それらは 2 つのコミットとして表示されます。

    commit 878c07412aab6a6b06b7fc8dd84c2418cc4f31d8
Merge: 9ffa590 c9f5552
Author: ***
Date:   Mon May 21 16:02:36 2012 +0100

    Merge branch 'modelUpdate4'

    Conflicts:
        ***.xcodeproj/project.pbxproj

commit c9f5552862872673317701c3dffd7fb6b6daa02c
Author: ***
Date:   Mon May 21 15:03:21 2012 +0100

    Modified model according to requests.  Repopulated seeded database.

これは git log の出力と、1 つにまとめたい 2 つのコミットです。しかし、私がするとき:

git rebase -i HEAD~2

実際には、以前にコミットされた (およびプッシュされた) 4 つのコミットが表示されるだけです。ブランチがマージされる方法を誤解していますか? git rebase -i を試してみると、git ログ リストの最初のコミットが表示されるだけです。

ありがとう!

4

1 に答える 1

3

4 つのコミットが既にプッシュされているとおっしゃっていたので、あなたのグラフ ( git log --oneline --decorate --graph) は次のようになっていると思いmasterますmodelUpdate4

* (master, modelUpdate4, HEAD) Merge branch 'modelUpdate4'
| \
|  * (origin/modelUpdate4) Modified model according to requests. [HEAD^2]
|  |
|  * Another commit on modelUpdate4
|  |
|  * Yet another commit on modelUpdate4!
|  |
*  | (origin/master) Something that conflics with a commit in modelUpdate4 [HEAD~1]
| /
* Previous commit on master [HEAD~2]

HEAD~2は最初の親の最初の親であり、 yourHEADmodelUpdate4へのマージであるmasterため、2 つのコミットを参照しmasterます。HEAD^2HEAD's2 番目の親なので、前にコミットHEADmodelUpdate4ます。(参照: http://paulboxley.com/blog/2011/06/git-caret-and-tilde )

HEAD~2が新しい拠点である場合、 と の間のすべてのコミットを直線で取得できHEAD~2ますmastermodelUpdate4また、ブランチの競合が発生したコミットで対処する必要があります。

* (master, HEAD) Merge branch 'modelUpdate4'
|
* Modified model according to requests.  Repopulated seeded database.
|
* Another commit on modelUpdate4
|
* Yet another commit on modelUpdate4!
|
* Something on master that conflics with modelUpdate4
|
* Previous commit on master

他の誰かがそれらのリモート ブランチを使用している場合、またはブランチの履歴を維持したい場合は、リベースしないでください。すでにリモート リポジトリにある履歴が書き換えられるため、他のすべての人にとっては頭痛の種になります。マージコミットをプッシュすると、ゴールデンになります。

または、 に直接リベースすることもできますorigin/masterorigin/modelUpdate4git boonies になってしまいますが、それはタスク ブランチなので、とにかく削除するつもりだったに違いありません。

于 2012-05-21T17:25:09.763 に答える