18

タイトルがはっきりしないと申し訳ありませんが、これは奇妙な問題です。

git checkoutは「ステージ」ブランチにgit pull移動し、パートナーの最新の変更(昨夜、リモートリポジトリの「ステージ」ブランチにプッシュした)を取得します。確かに、それらはローカルの「ステージ」ブランチにマージされます。git log <branch>彼が昨夜実行した5つのコミットを示しています。

次に、マスターブランチに切り替えて、リポジトリからプルします。テスト後に、これらの変更をマスターブランチにマージしたと彼が言ったからです。しかしgit checkout stage、「ステージ」ブランチに戻ると、5コミットだけリモートブランチより進んでいると表示されます。私git log origin/stageとそれは、そのリポジトリ(このプロジェクトで唯一のリモートリポジトリ)からプルした5つのコミットのどれも示していません。git log stageは、ローカルの「ステージ」ブランチでの5つのコミットを示しています。そのため、パートナーの最新のコミットを提供した直後に、リモートブランチがどのように時間を遡ることができたのか途方に暮れています。

私はこれにかなり慣れていないので、私はまだDCVSを把握しようとしているので、私が本当に基本的なことを単に誤解している可能性が高いので、あなたの忍耐に感謝します。

4

2 に答える 2

17

次のコマンドを試してください。

git log origin/stage..stage

これは、あなたがリモートの前にいるものを示しています。必要に応じてgit rebase origin/stage/git pushを実行します。

それでも問題が解決しない場合は、次の質問を参照してください:'git pull origin mybranch'は、ローカルmybranchNをoriginよりも先にコミットします。なんで?

于 2010-10-29T14:33:46.163 に答える
0

次のことが起こった後、私は今同様の問題を抱えています:

  • 私の同僚は単純なコミットをプッシュしました
  • 私はそのコミットをプルしました、私のツールは「コミットがすぐに変更されました」とマークしました
  • 私の同僚は、元のコミットを変更して、代わりに2つの異なるコミットになるように--amendを実行することにしました。
  • 私はその変更をプルし、最終的には元の3つのコミットよりも前になりました

私の簡単な解決策は、これら3つのローカルコミットを元に戻し、コミットごとに次のコマンドを実行することでした。

git reset --soft HEAD~1

次に、git statusは、2つのコミットでオリジンの後ろにいることを示し、通常どおりそれらのコミットをプルできます。

于 2020-08-06T07:14:12.117 に答える