私は最近Gitの使用を開始しました(以前はSubversionを使用していましたが、現在はbitbucketとgitを使用するプロジェクトで共同作業を行っています)。
今日は、同僚がブランチを作成する代わりにマスターに変更をプッシュしたという意味がわかるまで、すべてが順調に進んでいます。これは、コミットしようとするとエラーが発生することを意味します。
現在のブランチの先端が遅れているため、更新は拒否されました
私はこれをプルリクエストで再同期することで解決する必要があることを知っていますが、ローカルで行った変更を失いたくないし、コミットを強制して他の人が行った変更を消去したくない。
どちらも失うことなく変更をマージできるようにする正しいアプローチは何ですか?
すでにいくつかのコミットを行っている場合は、次のことができます
git pull --rebase
これにより、すべてのローカルコミットが新しくプルされた変更の上に配置されます。
これには非常に注意してください:これはおそらく、現在のすべてのファイルをリモートリポジトリのブランチの先頭にあるファイルで上書きします!これが起こり、あなたがそれを望んでいないなら、NDO THIS CHANGE with
git rebase --abort
...当然、新しいコミットを行う前にそれを行う必要があります!
私はこのようにそれをします:
ステージングされていないすべての変更をステージングします。
git add .
変更を隠します。
git stash save
リモートと同期します。
git pull -r
ローカルの変更を再適用します。
git stash pop
または
git stash apply
同じ問題がありました。残念ながら、カタログレベルが間違っていました。
しようとしました:git Push -u Origin master
->エラーが発生しました
それから私は試してみました:git pull --rebase
->まだ問題がありました
最後にディレクトリを変更しますcd your_directory
その後、もう一度試してみました(git Push
)と動作します!
次のVisual Studio 2017の変更により、この問題を克服できました。
私はブランチでまったく同じ問題を抱えていました(ブランチBと呼ぶことにします)
これで、ブランチBを削除してから、ブランチCをブランチBに名前変更できます。
お役に立てれば。