0

多くの場所と同様に、master にマージする前に機能ブランチ内でコミットを破棄したいと考えています。

これを行うために、git rebase -i HEAD~10マージする前にインタラクティブなリベース ( )でコミットを頻繁にスカッシュします。

ブランチ内でどのコミットをスカッシュするかを知るにはどうすればよいですか?

もしそうならgit log、コミットの履歴とマスターへの以前のコミットが表示されます。
このブランチで作成されたコミットと、マスター ブランチで既に行われているコミットを確認/知る簡単な方法はありますか? git history明確な方法でそれらを区別していないようです。このブランチでの最初のコミットがどれかはわかっていると思います。確認する簡単な方法はありますか?

4

2 に答える 2

2
git rebase -i master

instructs git to choose all commits on your branch starting with the commit after the common ancestor of your branch and master, and the result will be placed on top of master.

git log --graph --oneline --decorate master yourbranch

shows the log as a tree (with some impressive ASCII artistry).

于 2015-11-30T16:22:23.977 に答える
0

コミットする作業が最終的に別のコミットに押しつぶされることがわかっている場合、コードを書いているときにfixup! <identical commit message>、コミットメッセージとして使用でき、git はリベースでコミットを自動的に再配置して押しつぶします。

これは、履歴内のコミットとは対照的に、コミットが意味のある作業の塊であるアトミック コミットの概念を維持するのに特に役立ちoops fixed typo from last commitます。

グラフを確認する限り、git logいくつかのデコレータを使用するという Aasmund の回答をお勧めします。個人的には、コミット ウィンドウとグラフの視覚化が好きなので git 拡張機能を使用していますが、それ以外はすべて powershell で posh-git を使用しています。

エイリアスをインタラクティブにリベースして元のベースに戻したい場合は、 を使用できますgit rebase -i $(git merge-base master HEAD)。これにより、現在の HEAD の位置が取得され、開始した場所までリベースされます。これは、マージの前に自分の作業を押しつぶすのに便利です。

于 2015-11-30T19:31:46.363 に答える