gitを使用してリモートリポジトリから非常に古いローカルリポジトリを更新するための洗練された方法(つまり、ローカルディレクトリを削除して再度クローンを作成する必要がない)を検索しようとしましたが、良い答えは見つかりませんでした。私が探しているコマンドは、基本的に、リモートリポジトリの指示を使用し、必要に応じてローカルファイルを削除し(リモートリポジトリに存在しなくなった場合)、行った可能性のあるすべての変更を無視することで、競合を解決します。追跡されたファイル。
質問する
297 次
2 に答える
1
次のコマンドを使用してみてください。
git fetch
git reset --hard origin/master
これにより、変更を破棄しながら、ローカル ブランチがリモートのブランチと一致するようになります。ただし、ブランチごとに 2 番目のステップを実行する必要があることに注意してください。
于 2013-03-15T03:44:32.720 に答える
1
あなたは出来る:
- すべてのローカル ブランチを削除します (「ローカル git ブランチをすべて削除する」を参照)。
- ローカル ブランチを再作成し、リモート リポジトリのリモート ブランチを追跡します。「すべてのリモート git ブランチをローカル ブランチとして追跡する」を参照してください。
- 新しいブランチで参照されなくなった古いコミットをクリーンアップします: " How to remove unneeded git commits? "
したがって、「マージの競合」に対処する必要はありません。これは一種のグローバル リセットです (保持したい作業がある場合は注意して進めてください。質問からはそうではないようです)。
OP Syrahnは、より単純な方法を採用しました。
その時点で、私
rm -Rf
はディレクトリとクローンを最初から作成しました。
Git には本当に必要--theirs --all --force
なものがあります。
" Git merge -s theirs: Simply? " があまり目立たない理由を説明している場合でも、"theirs" オプションをエミュレートする方法があることに注意してください: " git command for make one branch like another "を参照してください。
于 2012-10-04T13:26:16.523 に答える