我有一个主人和一个beta分支。有一种情况是推送被拒绝:
edit2:我在分公司主人身上。
$ git push
Counting objects: 9, done.
Compressing objects: 100% (6/6), done.
Writing objects: 100% (6/6), 669.81 KiB, done.
Total 6 (delta 2), reused 0 (delta 0)
To git@github.com:foobar/codedemo.git
a5fc71d..64430c1 master -> master
! [rejected] beta -> beta (non-fast forward)
error: failed to push some refs to 'git@github.com:foobar/codedemo.git'
通常我会结帐测试版,然后拉测试版,这可能会解决它。
但是因为这是一个制作网站,所以我不能在这里查看测试版。有没有办法在没有检查的情况下拉测试?
由于这是一个生产网站,我不知何故被卡住了。
编辑:代码也在其他位置检出,我可以从其他位置做些什么来解决这里的问题吗?在其他地方没有问题。
Edit3:借助已接受的解决方案,我可以在一段时间后完成,但我更喜欢没有第二个客户端的解决方案
答案 0 :(得分:4)
您可以将beta推送到其他分支,然后转到可以检查它以解决它的地方。
git push origin beta:beta-temp
# on a different machine
git fetch
git checkout beta-temp
git rebase origin/beta # puts your new commits on top of the upstream
git push origin beta-temp:beta
git push origin :beta-temp # to delete it
答案 1 :(得分:4)
如果你没有做任何奇怪的事情,那么原因就是遥控器有一个你不知道的提交,并允许推送继续将完全忽略该提交。
首先尝试pulling,这将尝试自动合并两个提交,之后您就可以推送。
如果您拉出当前未签出的分支,我认为它仍会为您创建合并。
答案 2 :(得分:0)
你想推动什么分支?
默认情况下,git push
会推送您配置的所有已跟踪分支。
尝试这样做只推送当前分支:
git push origin HEAD