我创建了一个本地分支
$ git branch group_contact_form
Run Code Online (Sandbox Code Playgroud)
我提交了一些更改,然后将分支发送到远程,如下所示:
$ git push origin group_contact_form
Run Code Online (Sandbox Code Playgroud)
我很乐意继续推送提交并$ git branch -a显示我的本地和远程分支
* group_contact_form
master
remotes/origin/HEAD -> origin/master
...
remotes/origin/group_contact_form
...
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用时$ git pull:
fatal: 'origin/group_contact_form' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
我的.git/config情况如下:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = database1:/var/git/repo_name.git
[branch "master"]
remote = origin
merge = refs/heads/master
[branch "group_contact_form"]
remote = origin/group_contact_form
merge = refs/heads/master
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
你应该执行:
git remote show origin
Run Code Online (Sandbox Code Playgroud)
这将为您提供一个列表,列出哪些本地分支正在跟踪分支
如果您的本地分支没有跟踪远程,您可以创建跟踪分支:
git checkout -b origin/group_contact_form
Run Code Online (Sandbox Code Playgroud)
然后只需重新绑定本地分支,以便更新更改
您merge在该部分中的设置branch "group_contact_form"似乎是错误的。我认为应该是
merge = refs/heads/group_contact_form
Run Code Online (Sandbox Code Playgroud)
另外,remote应该是
remote = origin
Run Code Online (Sandbox Code Playgroud)
这是我执行后收到的设置git push origin mybranch。