2

サーバーで git pull を実行するたびに、メッセージが表示されます。

Your branch is ahead of origin/master by 2 commits.

2つは同期している必要があります。どうやってここに来たのかわからない。サーバー上で必要なオリジン/マスターにあるすべてのもの。最後の数回のコミットの変更を失ってもかまいません。それは重要なことではありませんでした。これらの同期を元に戻して、通常どおりにプッシュおよびプルできるようにするにはどうすればよいですか?

編集:git checkout origin/masterサーバー上のコードを実行して以前の状態に戻しましたが、現在は切り離された HEAD 状態です。どうすればそこから抜け出せますか?

4

2 に答える 2

1

AD7six の回答は、ローカルの変更を破棄します。また、ローカルにあるものをサーバーに簡単に送信できるはずです。

git checkout master # Get back on a real branch from the detached HEAD
git push origin master

また、gitk --allリポジトリの状態と、ローカル リポジトリがそれをリモートとどのように関連付けているかを理解するのにも非常に役立ちます。

于 2013-04-01T14:42:10.080 に答える
1

このメッセージは、サーバーのマスター ブランチに、リモートにないコミットがあることを意味します。誰かがサーバーでコミットし、この特定のチェックアウトから誰かがコミットすることを期待していない場合、この状況が発生します。

2 つのコミットが何であるかを確認するには

.. リモートにない:

git log origin/master..HEAD # just the commit messages
git diff origin/master..HEAD # the diff

これら 2 つのコミットを削除するには

保持したくない 2 つのコミットが存在する場合。マスター ブランチをリモートのマスター ブランチと正確に一致するように変更するには:

git checkout master # make sure you are on your master branch
git reset origin/master --hard # force local history to exactly match the remote.

これら 2 つのコミットを保持するには

コミットを保持したい場合は、コミットをリモートにプッシュするだけで、マスター ブランチが同期されます。

git push origin master
于 2013-04-01T14:39:57.193 に答える