4

リモートから複製された任意のローカル git 作業ディレクトリがあるとします。クローンが作成されてからローカル ディレクトリに何が起こったかに関係なく、ローカルの git リポジトリをリモートとまったく同じにしたいと考えています。別の完全なクローンを作成する必要はありません。

ローカル作業ディレクトリに次があるとします。

  • 追加の未追跡ファイル
  • 削除されたファイル
  • 段階的な変更。
  • 任意のブランチにある可能性があります。
  • リモートからクローンされて以来、たくさんのコミットがあります

ここで、このローカル リポジトリにリモートを正確に反映させたいと思います。これが私の現在の解決策ですが、それがすべてのケースをカバーしているかどうか、およびより簡単な解決策があるかどうかはわかりません。

git stash
git clean -f -x -d
git checkout master
git fetch origin
git reset --hard origin/master
git pull origin master

これを行うより良い方法はありますか?

4

2 に答える 2

3
git reset --hard

ステージングしたものを含め、すべての変更をダンプします。

git clean -xdf

無視または除外のためにgitが追跡していない作業ディレクトリ内のものをすべて取り除きます。

git checkout HEAD

すべてをクリーンアップできるように、ブランチを作成しません。

git branch | xargs git branch -D

すべてのローカルブランチを削除します

git tag -l | xargs git tag -d

すべてのタグを削除します

git prune origin

リモートになくなった追跡ブランチをすべて取り除きます

git fetch

持っていないリモートからブランチとタグを取得します。ここで停止して、ローカル ブランチを作成しながら作業したいリモート ブランチをチェックアウトできます。

git checkout origin/master

または、フェッチの時点で既存のすべてのリモートブランチが指している場所を指すローカルブランチを作成できます

git branch -r | xargs -n 1 git checkout
于 2012-09-25T08:13:20.113 に答える