0

タイトルが言うこと。

すべてを削除して最初から複製することなく、ローカルにのみ存在するいくつかのブランチとタグを削除するなど、リモートリポジトリと一致するようにすべてのローカルブランチをリセットしたいと考えています。私が見つけたのは、特定のブランチをリセットする方法に関する指示だけで、リポジトリ全体ではありません。

TortoiseGit Shell 拡張機能から実行できればさらに良いでしょう。しかし、コマンドラインでも問題ありません。

4

2 に答える 2

1

次のコマンドで実行できます。

git checkout --orphan @
git fetch <Remote> refs/*:refs/* --refmap= --prune --force

使用するリモート リポジトリはどこに<Remote>ありますか。fetchすべてのリモート参照 ( refs/*:refs/*)--prune--forceフラグを使用して、ローカル参照を削除して強制的に更新するだけです。

于 2016-12-14T16:30:35.103 に答える
0

次の行は、構成された上流ブランチを持つすべてのローカル ブランチを上流ブランチの状態にリセットします。

git checkout @{0} && git for-each-ref refs/heads --format '%(refname:strip=2)' | xargs -ri sh -c 'git rev-parse {}@{u} >/dev/null 2>&1 && git branch -f {} $(git rev-parse {}@{u})'

HEAD現在チェックアウトされているブランチをリセットできないため、最初のコマンドが原因でデタッチされてしまうため、これを行った後に作業ディレクトリに入れたいブランチをチェックアウトします。

于 2016-12-14T16:23:15.833 に答える