私のマスターブランチには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.
ローカルコンピューターの現在のリポジトリにあるブランチを現状のままにし、何もプルダウンせずにローカルにあるものですべてを上書きしたいと思います。
どうすればよいですか?
ブランチで作業しているのはあなただけなので、git Push --force
を実行すると、リモートブランチの状態を上書きできます。
あなただけがブランチにいると確信していますか?ブランチで作業しているのがあなただけだった場合、コミットはリモートでのみ行われ、git pull
を実行する必要はありませんでした。
共有ブランチでgit Push --force
を実行すると、チームにさらに多くの問題が発生します。したがって、次の手順を実行して、リモートブランチにある2つのコミットを削除することを確認します。
git checkout Origin/feature/218
git log -3
これは、リモートでの最後の3つのコミット(2つ後ろにあり、最後にコミットしたもの)がリモートのものであることを確認し、最後の2つを上書きすることを確認します。
git pull --rebase
これで問題は解決すると思います。
ブランチがマスターによって遅れている場合は、次のようにします。
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