2

我有一个 master 和一个 beta 分支。有一种push被拒绝的情况:

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'

通常我会检查测试版,然后拉测试版,这可能会解决它。

但是因为这是一个生产网站,所以我不能在这里查看测试版。有没有办法可以在不检查的情况下提取 beta?

由于这是一个生产站点,我不知何故被卡住了。

编辑:代码也在另一个位置签出,我可以从另一个位置做点什么来解决这里的问题吗?其他位置没有问题。

Edit3:在接受的解决方案的帮助下,我可以在一段时间后完成,但我更喜欢没有第二个客户的解决方案

4

3 回答 3

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
于 2009-10-29T00:46:45.260 回答
4

如果您没有做任何奇怪的事情,那么原因是远程有一个您不知道的提交,并且允许继续推送将完全忽略该提交。

尝试先拉动,这将尝试自动合并两个提交,之后您将能够推送。

如果您拉出当前未签出的分支,我认为它仍会为您创建合并。

于 2009-10-29T00:51:37.310 回答
0

你想推什么分支?

默认情况下,git push将推送所有配置的跟踪分支。

试试这个来推送当前分支:

git push origin HEAD

于 2009-10-29T00:41:42.790 回答