我可以用手学习如何将本地分支推送到远程分支.请看下面.非常感谢!
克隆了repo后创建了本地分支
$ git checkout -b mybranch remotes/origin/mybranch
$ git branch -a
master
* mybranch
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/mybranch
Run Code Online (Sandbox Code Playgroud)
但是当试图推动变革时:
$ git push mybranch mybranch
fatal: 'mybranch' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
$ git push remotes/origin/mybranch mybranch
fatal: 'mybranch' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
$ git push origin/mybranch mybranch
fatal: 'mybranch' does not appear to be a git repository
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)
小智 88
正如Abizern所说,这有效:
git push origin mybranch
Run Code Online (Sandbox Code Playgroud)
但是,为了进一步解释,在mybranch部分是的Refspec.这指定了应该使用给定的本地提交更新的远程引用.
所以,上面的命令相当于:
git push origin mybranch:mybranch
Run Code Online (Sandbox Code Playgroud)
甚至:
git push origin mybranch:refs/heads/mybranch
Run Code Online (Sandbox Code Playgroud)
事实上,既然你在当地的mybranch,你可以做到:
git push origin HEAD:mybranch
Run Code Online (Sandbox Code Playgroud)
这很好理解,因为我经常发现自己做的事情如下:
git push origin HEAD^:mybranch
Run Code Online (Sandbox Code Playgroud)
你想把除最顶层补丁以外的所有补丁推送到远程分支的地方.
最后,如果要删除远程mybranch,您可以:
git push origin :mybranch
Run Code Online (Sandbox Code Playgroud)
Abi*_*ern 48
尝试
git push origin mybranch
Run Code Online (Sandbox Code Playgroud)
这会将名为mybranch的分支推送到远程命名源
这是一个老问题,但我在这一天使用这个页面作为参考,并以不同的视角回答.根据我的经验,最好的方法是调整您的配置设置,以便git push
最终输入所有内容.
您将推送到更新代码的同一远程分支:
git config --global push.default upstream
现在,您将远程分支设置为上游(如果尚未):
git branch --set-upstream-to origin/the_master
git branch --set-upstream local_branch origin/the_master
你有两个分支 - 本地和远程.做一个git pull
或git push
不做args应该,现在,做你想做的.这不会限制您推送到与本地名称相同的远程分支,就像上面的一些命令那样.
我通常做的最后一件事:修改git pull
以改变这个序列:
git fetch && git merge [remote_upstream]
至git fetch && git rebase [remote_upstream]
使用此命令: git config --global branch.autosetuprebase remote
归档时间: |
|
查看次数: |
73809 次 |
最近记录: |