我和GitLab的一些朋友有一个项目,当然还有主分支,还有其他一些.当我克隆存储库时,我也用命令创建了一个上游git remote add upstream ....
然后,我发出了git fetch upstream.其次是git checkout upstream/test1.现在,如果我输入git branch -a,我得到这样的输出:
* (HEAD detached at upstream/test1)
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/upstream/test1
remotes/upstream/master
Run Code Online (Sandbox Code Playgroud)
这一切都很好,但后来我对我的upstream/test1分支中的代码做了一些更改.我不想将它们推到一起origin/test1,但我希望能够推动我的更改,upstream/test1以便我的其他朋友可以看到它.但是,如果我发出以下命令集:
git add .
git commit -m "Sample message"
Run Code Online (Sandbox Code Playgroud)
提交后我得到了消息:
[detached HEAD 4f20e95] Sample message
5 files changed, 12 insertions(+), 1 deletions(-)
Run Code Online (Sandbox Code Playgroud)
并且哈希值4f20e95在我的命令提示符中更改为.然后,如果我这样做git push,我收到以下错误消息:
fatal: You are not currently on a branch.
To push the history leading to the current (detached HEAD)
state now, use
git push origin HEAD:<name-of-remote-branch>
Run Code Online (Sandbox Code Playgroud)
如何在没有实际推送到原点的情况下推送到我的上游分支.
Sco*_*don 10
分支upstream/test1是远程跟踪分支,无法手动更新.此类分支跟踪远程服务器上的分支,并且仅在git fetch/ 期间更新git push.
相反,首先检查一个新的本地分支:
git checkout -b test1 upstream/test1
Run Code Online (Sandbox Code Playgroud)
像往常一样在那里犯罪.既然你已经提交,而是做:
git checkout -b test1 4f20e95
Run Code Online (Sandbox Code Playgroud)
准备好后,请推送到upstream:
git push upstream test1
Run Code Online (Sandbox Code Playgroud)
当你做一个普通的时候git push,Git使用remote和branch的默认值来推送基于某些配置选项.但是,如果你不在分支上(从而得到detached HEAD消息),那么Git不知道要推送什么分支,从而给你收到的错误.
| 归档时间: |
|
| 查看次数: |
20350 次 |
| 最近记录: |