0

我认为下面的这个命令将检查一个远程分支名称'branch_name'并为我创建一个名为'branch_name'的本地分支。

'git checkout -b branch_name "`git remote`"/branch_name'

我的问题是

  • 尽管我已经有一个分支名称'branch_name',我怎么能运行它,我可以要求 git it checkout 到 branch_name 甚至(如果该分支已经存在)?

  • 当我执行 'git branch -a' 时,我没有看到分支 'remote/branch_name',我只看到一个分支 'remotes/ser-git/branch_name'。git 如何从 'git remtoe'/branch_name 中找到正确的删除分支?

4

1 回答 1

0

尽管我已经有一个分支名称'branch_name',我怎么能运行它,我可以要求 git it checkout 到 branch_name 甚至(如果该分支已经存在)?

使用-B选项而不是-b

当我执行 'git branch -a' 时,我没有看到分支 'remote/branch_name',我只看到一个分支 'remotes/ser-git/branch_name'。git 如何从 'git remtoe'/branch_name 中找到正确的删除分支?

git 按以下顺序解析引用名称:

  1. 如果$GIT_DIR/<name>存在,这就是你的意思(这通常只对HEAD, FETCH_HEAD, ORIG_HEAD,MERGE_HEAD和有用CHERRY_PICK_HEAD);
  2. 否则,refs/<name>如果存在;
  3. 否则,refs/tags/<refname>如果存在;
  4. 否则,refs/heads/<name>如果存在;
  5. 否则,refs/remotes/<name>如果存在;<-这是你的情况
  6. 否则,refs/remotes/<name>/HEAD如果它存在。

这意味着如果您有本地分支ser-git/branch_name,它将被 git 首选而不是远程分支。

于 2012-12-21T21:39:54.693 回答