2016-07-19 9 views
1

GitHubからローカルリポジトリに影響を与えずにコミットを削除する最善の方法は何ですか?GitHub - ローカルリポジトリに影響を与えずにプッシュされたコミットを削除する

Githubリポジトリには、私のローカルリポジトリにコミットを維持しながら削除したい2つの間違ったコミットがあります。現在のリポジトリの状態を想定し

+0

別のブランチで作業してください。 –

+0

'git branch -b KeepThisBranch SHAofCommitToKeep'を使用して(ローカルリポジトリ内に)保存したいコミットの新しいブランチを作成します。その後、正常にGitHub内の古いブランチからコミットを削除します。 – Gregg

答えて

4

はこれです:

server:   A---B---C---D 
          ^master 

workstation: A---B---C---D 
          ^HEAD 
          ^master 
          ^origin/master 

し、所望の状態はこれです:

$ git push --force origin bbbbbbbb:master 
:あなたが得るために何ができるか

server:   A---B 
        ^master 

workstation: A---B---C---D 
          ^HEAD 
          ^master 
        ^origin/master 

は、その後これがあります

ここで、bbbbbbbbはBのコミットハッシュです。

注:

  • すべて--forceと同じように、注意してください。あなたは出てこない場所に身を置くことができます。
  • あなたのチームメンバー全員が、自分が行っていることを知っていることを確認してください。あなたが押した後に彼ら自身のリポジトリを正しく更新しないと、誤ってCとDをリポジトリに戻すことがあります。
  • 他のタグ/ブランチがコミットCとDを指している場合、そこからアクセス可能なままになります。
  • CとDをコミットし、それらのすべての変更が即座に削除されないことがあります。それらは、未定義の瞬間にガベージコレクションパスで削除されます。
+0

私にそれを打つ!また、 'HEAD〜2'のようなショートカットを使用して、履歴のコミット2を参照することもできます。 –

関連する問題