web-dev-qa-db-ja.com

あなたのブランチは2コミット遅れています

私のマスターブランチには218というブランチがあります。

このブランチを使用しているのは私だけです。

プルリクエストを行うために3週間前に変更をコミットしましたが、変更する必要があるため拒否されました。

今、私はそれらの変更を行い、最新の変更を自分のブランチにコミットしたいと思いました。

コミットしようとすると、マージしてプルする必要があると言われました。だから私はそうしました、そしてそれは私のすべてのファイルをめちゃくちゃにして、過去3週間に行った私の変更を取り除きました。

私はこれを元に戻しました:git reset --hard HEAD~1

そして今、私のコンピューターの私のレポに立っているので、すべてのファイルは本来あるべき姿です。しかし、git statusを実行すると、変更が表示されず、次のように表示されます。

Your branch is behind 'Origin/feature/218' by 2 commits, and can be fast forwarded. nothing to commit, working directory clean. 

ローカルコンピューターの現在のリポジトリにあるブランチを現状のままにし、何もプルダウンせずにローカルにあるものですべてを上書きしたいと思います。

どうすればよいですか?

9
RSM

ブランチで作業しているのはあなただけなので、git Push --forceを実行すると、リモートブランチの状態を上書きできます。

あなただけがブランチにいると確信していますか?ブランチで作業しているのがあなただけだった場合、コミットはリモートでのみ行われ、git pullを実行する必要はありませんでした。

共有ブランチでgit Push --forceを実行すると、チームにさらに多くの問題が発生します。したがって、次の手順を実行して、リモートブランチにある2つのコミットを削除することを確認します。

git checkout Origin/feature/218
git log -3

これは、リモートでの最後の3つのコミット(2つ後ろにあり、最後にコミットしたもの)がリモートのものであることを確認し、最後の2つを上書きすることを確認します。

15
Schleis
git pull --rebase

これで問題は解決すると思います。

3
Yogesh Kaushik

ブランチがマスターによって遅れている場合は、次のようにします。

git checkout master (you are switching your branch to master)
git pull 
git checkout yourBranch (switch back to your branch)
git merge master

マージ後、競合がないか確認してください。
競合がない場合:

git Push

競合がある場合は、ファイルを修正してください。

git add yourFile(s)
git commit -m 'updating my branch'
git Push
0
Bayram Binbir