GIT全般とGitKrakenを同時に学びます。 1つのファイルに小さな変更を加えました-aa.cpp
、GitKraken
の助けを借りて、コミットしてリモートリポジトリにプッシュします。突然、プロジェクトディレクトリにある気に入らないファイルをすべてプッシュしたことに気付きました。
次に、不要なファイルをリポジトリから削除する必要があります。リモートリポジトリから最後のプッシュを削除し、もう一度コミットしてプッシュすることをお勧めします。 GIT
コマンドを使用して最後のコミットを削除する方法。 GitKraken
で同じようにする方法は?
すでにこのコミットをプッシュしている場合は、他の誰かがブランチをプルした可能性があります。この場合、ブランチの履歴を書き換えることは望ましくないため、代わりに次のコミットを元に戻す必要があります。
git revert <SHA-1>
git Push Origin branch
ここで、<SHA-1>
は、削除するコミットのコミットハッシュです。このハッシュ値を見つけるには、ブランチでgit log
と入力し、最初のエントリを調べます。
git revert
を実際に使用する追加削除するコミットのミラーイメージである新しいコミット。これは、ブランチに新しい情報を追加するだけなので、パブリックブランチでのコミットを元に戻すための推奨される方法です。
このブランチを使用しているのが自分だけであることが確実な場合は、別のオプションがあります。
git reset --hard HEAD~1
に続く
git Push --force Origin branch
ただし、このオプションは、他の誰もこのブランチを共有していない場合にのみ使用してください。
私がそれを行う方法は、git status
と入力することです。これにより、現在使用しているブランチを確認でき、その後に次のように入力します。
git log
次に、次のようなものが表示されます。
commit aa09a82fb69af2d1aebde51d71514f7a03c3a692
Author: User <[email protected]>
Date: Fri Nov 4 15:36:22 2016 -0400
Fix issue with vertical scroll being forced
commit 411771837efe3ed555395e77fd35105a500ab758
Author: User <[email protected]>
Date: Thu Nov 3 15:50:42 2016 -0400
Add user notifications
commit f43b262f4e02b5a7268280e1230d44e36d1e547b
Author: User <[email protected]>
Date: Thu Nov 3 12:11:00 2016 -0400
All your base are belong to us
つまり、これはcommit aa09a82f
が最後のものであり、commit 41177183
がその前のものであることを示しています。
git reset --hard 41177183
...リモートバックアップを保持したまま、そのコミットに戻ります。別のgit status
を使用して、すべてがダブルプッシュに設定されていることを確認します(特にマルチタスクの場合、現在のブランチの検証に個人的に少し強迫的です):
git Push Origin :<branch_name>
git Push Origin <branch_name>
この時点で、すべての設定が完了しているはずですが、次のようにフォローアップすることをお勧めします。
git fetch --all --Prune
git branch -av
...ブランチリストをクリーンアップし、コミットメッセージを比較するためにローカルとリモートの両方を表示します。
また、チームで作業する場合は、先に進む前に、チームがこれを認識していることを確認してください。最後のコミットを削除してプッシュする前に、ブランチをプルしたりプッシュしたりしないでください。
マスターではなく、別のブランチで作業していることを願っています(または、git-flowを使用している場合は開発します)。私の例では、ブランチ名としてmy-broken-branch
を使用します;)
私の手順は次のとおりです。
リモートブランチを削除します。後で更新されたバージョンをプッシュします。
git Push Origin :my-broken-branch
次に、ローカルブランチから最後のコミットを削除します。 HEAD^1
は、現在より1つ前のコミットを指します。
git reset HEAD^1
次に、必要なファイルだけを追加して、慣れているようにコミットします。最後に、ブランチをリモートにプッシュします。そこにブランチが再作成され、変更されたコミットについて誰も知る必要がありません。
git Push Origin my-broken-branch