3

ローカル git リポジトリ内のすべてのリモート ブランチを、1 つずつチェックアウトすることなく、ローカル トラッキング ブランチに変換するにはどうすればよいですか。

これを行う理由の 1 つ (私がこれを行う理由) は、ローカル リポジトリのクローンを取得し、その新しいクローンに元のリモート オリジンからのすべてのブランチを含めることができるようにするためです。

「クローン」はローカルブランチのみをクローンするためです。

編集:いくつかのスクリプト化された回答が提供されています(そのため-ありがとう!)...完全に移植できるように、git内の方法を本当に望んでいました(「Windowsのみ」のユーザーがいるため、これまで、bash (git-bash など) を使用しなくても生き残ってきました)。

4

4 に答える 4

5

この回答は、freenode の #git で jast から提供されました。

git push . refs/remotes/origin/*:refs/heads/*

注:以下のコメントで述べたように、これは追跡ブランチを作成しませんが、少なくともローカルリポジトリのブランチを「ローカル」にし、「リモート」に注意してください。

于 2013-11-04T11:52:58.003 に答える
2

@cforbishの答えは、そのスクリプトを使用して次のようなコマンドを生成する必要があると言うだけで改善できると思います。

# git branch <local-branch-name> <remote-name>/<remote-branch-name>

たとえば、次のリモート ブランチがあるとします。

# git remote -v
  remote-repo <repo-directory> (fetch)
  remote-repo <repo-directory> (push)
# git branch -r
  remote-repo/branch1
  remote-repo/branch2
  remote-repo/branch3

次を実行して、ローカル追跡ブランチを作成できます。

# git branch branch1 remote-repo/branch1
# git branch branch2 remote-repo/branch2
# git branch branch3 remote-repo/branch3
# git branch
  branch1
  branch2
  branch3
于 2016-04-08T00:11:54.007 に答える