次のことを安全かつ確実に行うGitコマンド(またはコマンドの短いシーケンス)はありますか?
現在、私は行き詰まっています:
git fetch -p
git stash
git stash drop
git checkout $branch
git pull
しかし、パスワードを2回要求されるので(fetch
とpull
によって)気になります。 パスワードが1回だけ必要な場合は、一般的にどのソリューションでも満足です。
いくつかのメモ:
" ローカルファイルを上書きするために「git pull」を強制するにはどうすればよいですか? "のようなソリューションに従うことができます。
git fetch --all
git reset --hard Origin/abranch
git checkout $branch
それには1回のフェッチしか含まれません。
いくつかのポイント:
git stash
+ git stash drop
はgit reset --hard
に置き換えられると思います...または、さらに短く、-f
をcheckout
コマンドに追加します。
git checkout -f -b $branch
チェックアウトの前にgit reset --hard
が使用されたかのように、ローカルの変更はすべて破棄されます。
主な質問については、最後の手順を実行する代わりに、リモートから適切なブランチをローカルブランチにマージすることができます:git merge $branch Origin/$branch
、リモートにヒットしないと思います。その場合、クレデンシャルの必要がなくなるため、最大の懸念に対処できます。
git reset
およびgit clean
は状況によってはやり過ぎになる可能性があります(そして時間の浪費になります)。
「次の追跡されていないファイルは上書きされます...」のようなメッセージがあり、競合する追跡されていないファイルをremote/Origin/upstreamで上書きする場合は、git checkout -f <branch>
が最適なオプションです。
あなたが私のような場合、他のオプションは--hard reset
その後、プロジェクトを再コンパイルします。