をマージの競合を示しマスターからリベースしてみてくださいbr2
Gitのリベースマスターした後、再び私は2本の枝を持って再び
そしてそれをmaster
にマージして、すべての新しい変更を大きなコミットとしてコミットします。ここで
は私がやったことです:
git fetch --all
git checkout br2
git rebase origin/master
git rebase --continue until I resolved all conflicts
-checked everything is working
git checkout master
git merge br2
git commit review (my alias...can ignore)
git checkout br2
git rebase master (should have done nothing, no?)
Q:私が最初に引くと、再びすべての競合を解決しなければなりませんでした。なぜこれが起こったのですか?
q:git commit review
の前に、すべてのコミットを1つのコミットにする必要がありますか?
私はこれを見た:
git rebase -i master
That command will show a list of each commit, as such:
pick fb554f5 This is commit 1
pick 2bd1903 This is commit 2
pick d987ebf This is commit 3
# Rebase 9cbc329..d987ebf onto 9cbc329
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
Edit the summary shown to you by the rebase command, leaving the commit you want to be the main commit as "pick" and changing all subsequent "pick" commands as "squash":
pick fb554f5 This is commit 1
squash 2bd1903 This is commit 2
squash d987ebf This is commit 3
を私はあなたがすでにb2
にいくつかの変更をプッシュした場合、あなたが使用する必要があります)私はすでに
1)なぜそれは強制的でなければならないのですか? 2)この対話型のリベースをいつ行うべきですか? 'master >> git merge br2'の後に?それは 'マスターにマスターを暴露する'でしょうか? –
br2がリベースされているため、br2に加えられた変更を早送りできないため、強制的にプッシュする必要があります。マスターにm1、m2をコミットしている場合は、b1、b2をコミットしてプッシュすると、原点b2はこの順番でコミットします。 m1、m2、b1、b2。次に、ローカルコピーを上にリベースするマスターm3に別のコミットがある場合、ローカルにはm1、m2、m3、b1、b2があります。これにより、エンドに追加できるコミットだけを追加できるので、通常のプッシュを行うことはできません。強制プッシュを使用すると、m3をコミット履歴に挿入できます。 –
スカッシュについては、申し訳ありませんが、私は質問を誤解しました。マスターの上でリベースするときは、対話型のリベースを行うことをお勧めします。事実の後で、git rebase -i HEAD〜3を使ってコミットすることもできます。対話的なrebaseと以前のコミットの詳細については、このページを参照してください。https://git-scm.com/book/en/v2/Git-Tools-Rewriting-History –