web-dev-qa-db-ja.com

SourceTree-待機中のプッシュを削除する

リモートにプッシュされるのを待っているコミットを削除するにはどうすればよいですか?

2 pushes waiting

私の状況は、それらのキューに入れられたコミット(変更)が既にプッシュされ(さらに以下)、現在サーバーはそれらがHEADの背後にあるため、それらを受け入れることを拒否しています。

別のコミットにリセットしようとしましたが、HEADに戻ると、プッシュが再び表示されます。

[リポジトリ]> [リモートステータスの更新]をクリックしても効果はありません。2番目の待機プッシュが実際に追加されました

PS:私は私の用語をお詫び申し上げます。私はgitにかなり慣れていません。

更新1

Feature2をマスターブランチにコミットしたときに問題が発生しました。コミットする権利がないので行き詰まってしまいました。その後、私は個人のブランチに再度コミットしましたが、それは問題ありませんでした。次に、プッシュをクリックして正しい(個人用)ブランチを選択しても、プッシュされない、待機中のコミットを1つ取得しました。

enter image description here

19
teejay

Gitコミットはコミットグラフを形成します。ブランチは、そのグラフ内のコミットへの名前付きポインタです。

それを考えると、あなたの質問は次のように言い換えることができます

私のローカルmasterブランチは、リモートmasterブランチとは異なるコミットを指しています。ローカルmasterブランチがリモートmasterブランチと同じコミットを指すようにするにはどうすればよいですか?

これを行うには2つの方法があります。リモートブランチ(git Push)またはローカルブランチを移動します( git reset )。言ったように、リモートにプッシュすることはできませんmasterブランチなので、オプション1はテーブルから外れ、オプション2が残ります。

resetは現在チェックアウトしているブランチで動作することに注意してください1 したがって、まず現在masterブランチにいることを確認してから、そのブランチをリモートのmasterブランチと同じコミットに移動します。

git checkout master               <--- make sure you're on the master branch
git reset --hard Origin/master    <--- put your master branch on the same commit as Origin/master

masterOrigin/masterが同じコミットにあるため、Pushへのコミットはありません。


  1. resetは現在のHEADで動作しますが、この説明では、ブランチで動作していると考える方が簡単です。詳細については、この質問を参照してください HEADとは? とは?.
29
R0MANARMY

やってみましたか:git reset --hard HEAD~1?このようにして、ローカルリポジトリに再び頭を持ちます。そうでなければ、私は役に立つかもしれない面白いページを見ました: http://ibrokegit.com/

ほとんどの場合、GUI(この場合はSourceTree)ではなく、コマンドラインを使用してこの問題を解決する必要があります。

それが役に立てば幸い!

3
facundofarias