我们的仓库中正好有一个与分支名称同名的标签。因此,当我尝试从该分支中拉出时,git会混淆并从标记中拉出,就像这样。我必须先删除该标签才能进行git pull工作。
那我怎么告诉git pull from branch而不是tag?
cc-backend ➤ git pull origin 0.9.0-rc6-patch1
From 10.0.0.28:webcc/cc-backend
* tag 0.9.0-rc6-patch1 -> FETCH_HEAD
Already up to date.
/* I have to delete that tag and git pull again to get the result I want */
cc-backend ➤ git pull origin 0.9.0-rc6-patch1
From 10.0.0.28:webcc/cc-backend
* branch 0.9.0-rc6-patch1 -> FETCH_HEAD
Updating 9d7e9dc3..2bf3f96a
Fast-forward
app/Services/GroupSeat/Seat.php | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
答案 0 :(得分:3)
您应使用全名,例如
git checkout refs/heads/<branchname>
或标记
git checkout refs/tags/<refname>
拉
git pull origin refs/heads/<branchname>
要访问中的相关文档类型
git help revisions
请参阅SPECIFYING REVISIONS
部分
答案 1 :(得分:1)
默认情况下,获取的refspec是fetch = +refs/heads/*:refs/remotes/origin/*
因此,您还可以git fetch
(获取所有分支),然后使用origin/<remote branch>
合并或重新建立分支
但更方便的解决方法是就标记的命名约定达成共识:v0.9.0-rc6-patch1
而非0.9.0-rc6-patch1
。这样,再也不会混淆了。
答案 2 :(得分:1)
似乎远程存储库具有标签和具有相同名称0.9.0-rc6-patch1
的分支。使用全名来获取/拉取
# fetch/pull the tag
git fetch/pull origin refs/tags/0.9.0-rc6-patch1
# fetch/pull the branch
git fetch/pull origin refs/heads/0.9.0-rc6-patch1