私は遠隔地点にマスターブランチしか持っていません。gitを別のローカルリモートrefspecにフェッチ
それから私はやった:
git fetch origin refs/heads/master:refs/remotes/origin/master2
を私が得た結果:すべての権利を思わ
* [new branch] master -> origin/master2
。
bash$ git branch -r
origin/HEAD -> origin/master
origin/master
origin/master2
けどとしてMASTER2示されている:
それはマスターとのリモート追跡ブランチとして示されている
bash$ git remote show origin
Remote branches:
master tracked
refs/remotes/origin/master2 stale (use 'git remote prune' to remove)
I. MASTER2が古くなったものとして示されている理由は私の最初の質問はありますか?私はそれをフェッチすることができました(そして私のローカルリモートトラッキングとしてそれを作成しました)、私はそれが遠隔起源/マスターにマップされることを期待していましたか?
II。私はgitのブランチの男をチェックし、見つけた
bash$ git branch -r -d refs/remotes/origin/master2
error: remote-tracking branch 'refs/remotes/origin/master2' not found.
:フルrefspecを与えることによって、それをやろうとしたときに
bash$ git branch -r -d origin/master2
それを削除するとエラーを得た:2つ目の質問は、私がしなければならない理由でありますそこ支店名について何も特別な:
<branchname>
The name of the branch to create or delete. The new branch name
must pass all checks defined by git-check-ref-format(1). Some of
these checks may restrict the characters allowed in a branch name.
感謝を。私が最初にプッシュした後に理解するように、master2はリモートで作成されます。その後、私のローカルrefs/remotes/origin/master2は「古い」ステータスを失いますが、origin/master2とremote/origin/master2の両方は空の状態になります。 – user1337
@ user1337はい、最初のプッシュ後、 'master2'は '古い'ステータスを失います。しかし、それは空ではありません:少なくともマスターからのコミットが1つあります。 – VonC
私はそれを見つけました:https://git-scm.com/book/en/v2/Git-Internals-The-Refspecあなたが見つけることができます:一度だけのフェッチをしたい場合は、コマンドライン上の特定のrefspecも参照してください。 $ git fetch origin master:refs/remotes/origin/mymaster – user1337