2016-11-19 6 views
0

一般的にGITとGitKrakenを同時に学習してください。 1つのファイルに小さな変更を加えました - aa.cppGitKrakenの助けを借りてリモートリポジトリにコミットしてプッシュしてください。突然私は、私が好きでないプロジェクトディレクトリにあるすべてのファイルをプッシュしていることが分かりました。最後のコミットとプッシュを削除してください

これで、不要なファイルをリポジトリから削除する必要があります。私は、リモートリポジトリから最後のプッシュを削除し、コミットして再度プッシュしようとします。 GITコマンドを使用して最後のコミットを削除する方法。 GitKrakenと同じようにするには?

+0

この回答を読んで、目的のコミットを削除したら、単にリモートにプッシュしてください。 http://stackoverflow.com/questions/34519665/how-to-move-head-back-to-a-previous-location-detached-head/34519716#34519716 – CodeWizard

答えて

4

このコミットを既にプッシュしている場合、他の誰かがブランチをプルしている可能性があります。この場合、あなたのブランチの歴史が望ましくない書き換え、あなたが代わりにこのコミット元に戻す必要があります。

git revert <SHA-1> 
git push origin branch 

をここ<SHA-1>を削除するコミットのコミットハッシュです。このハッシュ値を見つけるには、ブランチにgit logと入力し、最初のエントリを調べます。

git revertを実際に使用すると、は、削除するコミットのミラーイメージである新しいコミットであるを追加します。これは、ブランチに新しい情報を追加するだけなので、パブリックブランチでコミットを元に戻すのに好ましい方法です。

あなたはこのブランチを使用した唯一の人であることを特定している場合は、別のオプションがあります:

git push --force origin branch 

続い

git reset --hard HEAD~1 

を誰場合にのみ、このオプションを使用する必要があります他の人はこのブランチを共有しています。

0

私は別のブランチで作業していますので、マスターではなく、git-flowを使用している場合は開発してください。私の例では、ブランチ名としてmy-broken-branchを使用します)

手順は次のとおりです。
リモートブランチを削除して、後で更新版をプッシュします。

git push origin :my-broken-branch 

次に、ローカルブランチからの最後のコミットを削除します。 HEAD^1は現在よりも前のコミットを参照します。

git reset HEAD^1 

これで、必要なファイルだけを追加し、以前と同じようにコミットします。最後にブランチをリモートに押します。そこにブランチを再作成し、誰も変更されたコミットについて知る必要はありません。

git push origin my-broken-branch 
0

私はそれについて移動の方法は、続いて、私たちは私たちが現在いるブランチを検証することを可能にする、git statusを入力して、次のとおりです。次に

git log 

、あなたはこのようなものが表示されます:

commit aa09a82fb69af2d1aebde51d71514f7a03c3a692 
Author: User <[email protected]> 
Date: Fri Nov 4 15:36:22 2016 -0400 

    Fixed issue with vertical scroll being forced. 

commit 411771837efe3ed555395e77fd35105a500ab758 
Author: User <[email protected]> 
Date: Thu Nov 3 15:50:42 2016 -0400 

    Added Notifications. 

commit f43b262f4e02b5a7268280e1230d44e36d1e547b 
Author: User <[email protected]> 
Date: Thu Nov 3 12:11:00 2016 -0400 

    Your Bases 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 

...あなたの支店のリストをクリーンアップし、コミットメッセージを比較するために、あなたのローカルとリモートの両方を示しています。

また、チームと一緒に作業する場合は、前に進む前にチームに認識されていることを確認してください。最後のコミットとプッシュを削除する前に、ブランチをプルまたはプッシュしてブランチをプッシュする必要はありません。

関連する問題