Gitでやらかした時のための基本操作(Sourcetree編)


同じ内容のエントリはたくさんありますが、CLIを使うものが多いので、
社内向けにSourcetreeでの基本commandの操作方法をまとめました。

前提

共有しているリモートリポジトリに既にPushしたCommitを変更するとおかしなことになるのでPush前に!というのが大原則になります。

プッシュする前

直前のCommitだけを修正する場合: amend
Commitを消したい場合: reset
古いCommitを修正する場合: rebase

プッシュした後

Commitをなかったことにしたい: revert
Push後にはamend/reset/rebaseしちゃダメ!

(amend)コミットメッセージを書き直したい時

直前のコミットは、コミットした後に再度コミットボタンを押し、下記のように「最新のコミットを修正」を選択する。

(rebase)古いコミットを書き直したい場合

直したいコミットの親コミットの上で、「xxxの子を対話形式でリベース」を選択

「メッセージを編集」でコミットメッセージを編集、
またはドラッグ&ドロップでコミットの順番を入れ替える

(rebase)直前のCommitから任意のCommitまでまとめたい

こんな状況

まとめたいコミットの上で「このコミットまでmasterを元に戻す」を選択。Using modeでSoftを選択してOK
その後、新しくCommitすることでCommitをまとめることができます。

(revert)プッシュ後だけどコミットをなかったことにしたい

「コミット適用前に戻す」を選択します。
OKを押すと、「Revert コミット名」という名前の新しいコミットができます。

(reset)コミット内容をなかったことにしたい

戻したいコミットの上で「このコミットまでブランチ名を元に戻す」を選択。modeはSoftを選択してOK

さらにもっとやらかした場合は?

[ Gitでやらかした時に使える19個の奥義 ]
http://qiita.com/muran001/items/dea2bbbaea1260098051