2016-04-27 3 views
0

ローカルブランチで自分のコードを開発し、リモートリポジトリにプッシュする前にコミットメッセージをリベースして修正できると思っているように(一時的、temp2)コミットコメントを追加しました。しかし、これらの2つのコミットの後、私はリモートのリポジトリから引っ張ってローカルブランチとマージしました。しかしその後、私はコミットメッセージを編集できるように、マージの前に特定のコミットを再配置することができません。 GITのクライアントとしてsourcetreeを使用しています。プッシュする前にコミットメッセージを編集する方法はありますか?GITのコメントを修正する

enter image description here

enter image description here

+2

私はこれらすべての素晴らしいGUIを自分自身で避けます。 (私のギャップが必要です!)コマンドラインから、このような場合に 'git rebase -i'を実行することができます。私はあなたのクリップ内にグラフが表示されず、より複雑なコマンドラインコマンドが必要かどうかを知ることができませんが、いずれの場合でもGUIであなたを助けません。 – torek

+0

最新のコミットは 'git commit --amend'を使って行います。あなたのケースでは「マージ関連」である現在のブランチの先端を受け入れます。代わりに、最新のマージをリセットして、元のリモートブランチの上にコミットをリベースすることができます –

+0

@torek私はそれを試みましたが、特定のコミットにリベースを適用できないと言います(リモートブランチです私は合併しました)) – kernel

答えて

1

あなたはインタラクティブなリベースを行う場合は、コミットメッセージを言い替えることができます。 他のコマンドラインを使用することができ、あなたのGUIでそれを行う方法があるかもしれません:

$ git rebase -i origin/master 

は言い替える」で「選択」に置き換えコードエディタ

であなたのコミットの一覧を表示します。 'を押してメッセージを編集します。また、「スカッシュ」第二は、最初の一つにコミットすることができ 、

+0

私はそれを試みましたが、リモートブランチ(私が統合したこのブランチ)である特定のコミットにrebaseを適用することができないと言っています。 – kernel

1

一つの解決策は、あなたが望む方法で編集し、コミットし、上流のものをチェリーピックバック巻き戻しされます:

  1. チェックアウトtemporary

    git reset --hard d19d86b 
    
  2. 編集をコミットメッセージ

    git commit --amend 
    
  3. をコミット
  4. チェリー選ぶtempコミットと修正:

    git cherry-pick 68a0bcd 
    
    git commit --amend 
    
  5. master_integrationとマージ:

    git merge master_integration 
    
  6. をあなたはdev_ProgramViewコミットが必要な場合 - だけでなく、それを追加します。

    git cherry-pick dev_ProgramView 
    

すべてのコミットハッシュとブランチ名はあなたの写真から来ます。

+0

これは正しい方法ですが、注意する必要があります。セーフティネットとして、ブランチ名 'dev_ProgramView'によって現在指示されている' adb321a'をコミットするために* new *ブランチまたはタグ名を割り当てます。私はどのブランチが実際に現在のものであるか(むしろ、「rebase -i」が始まる前の)イメージからは分かりません。 OPへの注意:上記のいずれかを実行する前に、進行中の失敗したリベースを取り消すには、必ず 'git rebase --abort'を使用してください。 – torek

+0

これを追加してくれてありがとう@torek!別の方法は、あなたがコミットの量に迷ったときに 'git reflog'に依存することです。 – manzur

関連する問題