3

新しい git ブランチを作成します。

git checkout -b test

そしてそれをオリジンにプッシュしました:

git push オリジン -u テスト

すべてのブランチをリストすると、次のようになります。

  master
* test
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/test

ここで、別のマシンで、コマンドを実行してリモート ブランチ参照を取得したいと考えています。これどうやってするの?

私は出力が欲しい:

* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master
  remotes/origin/test

そして、コマンドは新しいブランチの名前を認識していません。

試してみました: git pull, git pull --all, git fetch, git fetch --all. ほかに何か?

編集:私は私に言うコマンドが必要です:

* [new branch]      test       -> origin/test

最初にブランチをチェックアウトせずにこれは可能ですか? また、レポを削除して再度複製したくありません。

4

3 に答える 3

4

別のマシンで、コマンドを実行してリモート ブランチ参照を取得したい。

空のレポを開始し、オリジンを追加して ls-remote を実行できます (他の質問のコメントで行ったように):

git init newRepo
cd newRepo
git remote add origin /url/remote/repo
git ls-remote origin

これにより、ローカルで何かをクローン/フェッチすることなく、リモート リポジトリのブランチを表示できます。
空のリポジトリにいるので、何を取得するかを決定できます。


jthillがコメントで言及しているように、このgit ls-remote部分は git リポジトリから実行する必要はありません。
例として、次のことを考慮してください。

cd / # to illustrate that you can be anywhere
git ls-remote git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git 'refs/heads/*'

すでに複製されたレポがあり、デルタをダウンロードしてもかまわない場合は、その refspec がすべてのブランチをフェッチするように設定されていれば、git fetch が機能するはずです。
(繰り返しになりますが、他の質問「git checkout new remote branch when cloneing with depth 1 option」に示されているように)

git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
于 2014-04-30T12:18:34.693 に答える