240

コマンド ラインに触れずに、SourceTree で間違ったコミット メッセージを編集するにはどうすればよいですか?

追加の詳細:

  • これは最新のコミットではありません。
  • すべてが既に Bitbucket にプッシュされています。
  • これは非公開のリポジトリであり、協力者は私だけです。
  • いつでも再コミットできるので、以前のコミットを失うことは気にしません。
  • ただし、これまでに行ったコード変更を失いたくありません。

結果:

  • あなたのコメントと返信によると、現時点では不可能に思えるので、新しいリポジトリを作成して最初からやり直します。助けてくれてありがとう!
4

4 に答える 4

60

バージョン 1.9.6.1。UnPushed コミットの場合。

  1. 以前にコミットされた説明をクリックします
  2. コミットアイコンをクリックします
  3. 新しいコミット メッセージを入力し、[コミット オプション] ドロップダウンから[最新のコミットを修正] を選択します。
  4. メッセージをコミットします。
于 2017-01-05T11:32:12.327 に答える
13

アップデート

注: この回答は、もともと SourceTree for Windows の古いバージョンに関して書かれたもので、現在は古くなっています。

SourceTree for Windows の現在のバージョン 1.5.2.0 に関するの新しい回答を参照してください。歴史的な目的のために、この回答を残しています。

元の回答

私は Windows を使っているので、コマンド ライン ツールを持っていませんし、使い方もわかりません :( それを解決する唯一の方法ですか? GUI は git のすべての機能をカバーしていませんか? —元のポスター

Git GUI に関しては、いいえ、Git のすべての機能をカバーしているわけではありません彼らは近づくことさえしませんGit で誤ったコミット メッセージを編集するにはどうすればよいですか? の回答の 1 つを確認することをお勧めします。、Git は柔軟で、コマンド ラインから複数のソリューションを利用できます。

SourceTree には、msysgit bash シェルが既に付属している場合もあれば、標準の Windows コマンド シェルを使用できる場合もあります。どちらの方法でも、[ターミナル] ボタンをクリックして SourceTree から開きます。

ここに画像の説明を入力

ここで、SourceTree が使用する端末 (bash または Windows) を設定します。

ここに画像の説明を入力

SourceTree の問題を解決する 1 つの方法

そうは言っても、SourceTree でできる 1 つの方法を次に示します。コメントで、「障害のあるコミットに戻す」ことを気にしないと述べたので(これは、実際にはリセットを意味していると思いますが、これはGitの別の操作です)、手順は次のとおりです。

  1. SourceTree を右クリックして を選択Reset current branch to this commitし、ドロップダウンからハード リセット オプションを選択して、不良コミットにハード リセットを実行します。ここに画像の説明を入力
  2. [コミット] ボタンをクリックしてから、
  3. 下部にある「最新のコミットを修正する」というチェックボックスをクリックします。ここに画像の説明を入力
  4. メッセージに必要な変更を加えてから、もう一度 [コミット] をクリックします。出来上がり!

このコメントについて:

既に Bitbucket にプッシュされているためにそれが不可能な場合は、新しいリポジトリを作成して最初からやり直してもかまいません。

これは、レポで作業しているのはあなただけということですか? 共同作業者に問題を引き起こさずにリポジトリの履歴を変更する (コミットを修正するなど) ことは簡単ではないため、これは重要です。ただし、リポジトリで作業しているのは自分だけだとすると、次にやりたいことは、変更された履歴をリモートに強制的にプッシュすることです。

ただし、障害のあるコミットをハード リセットしたため、強制的にプッシュすると、それ以降のすべての作業が失われることに注意してください。それでも問題ない場合は、コマンド ラインで次のコマンドを使用して強制プッシュを実行する必要があるかもしれません。SourceTree で強制プッシュを実行するオプションが見つからなかったからです。

git push remote-repo head -f

これは、BitBucket がレポへの強制プッシュを許可することも前提としています。

いずれにせよ、コマンド ラインから Git を使用する方法を実際に学ぶ必要があります。#ProTip、msysgit を使用し、端末のプロパティでクイック編集モードをオンにすると、ダブルクリックしてテキスト行を強調表示し、右クリックしてコピーし、もう一度右クリックして貼り付けることができます。それはかなり速いです。

于 2013-07-12T06:07:07.277 に答える