git拒绝推送非快进

Joh*_*hnJ 15 git bitbucket git-commit

我对git很陌生,在过去的两个月里我一直在做一个小型项目,并且没有任何问题就把东西推到了bitbucket上.几天前,我压缩了我的项目文件夹(因为我不得不重新安装我的Linux操作系统),现在在重新安装Linux操作系统后将其解压缩.

所以,现在,我去了我的项目文件夹,保持愉快的工作,最后做了:

git add -A && git commit -m "modified code" && git push origin master
Run Code Online (Sandbox Code Playgroud)

..这是我通常做的..

我得到:

To https://johnsproject@bitbucket.org/johnsproject/proj.git
! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://johnsproject@bitbucket.org/johnsproject/proj.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)

我已经看过几个SO问题,他们建议使用强制标志-f- 但我不确定我是否应该这样做.

ps:我在主分支 - 这是only我的回购分支.

如果有人能指出我在这里正确的方向,真的很感激.

谢谢.

Kla*_*urn 22

在您可以推送之前必须先拉出中央存储库中的更改.做

git add -A
git commit -m "my local changes" 
git pull
Run Code Online (Sandbox Code Playgroud)

解决任何冲突.然后

git push
Run Code Online (Sandbox Code Playgroud)

或者,如果您在本地没有有价值的修改,您可以创建一个新的repo克隆,并从那里开始工作:

git clone https://johnsproject@bitbucket.org/johnsproject/proj.git new_repo_dir
Run Code Online (Sandbox Code Playgroud)


Gan*_*nye 10

试着做

git pull origin master
git add -A
git commit -m "modified code"
git push origin master
Run Code Online (Sandbox Code Playgroud)

您的本地存储库可能与远程存储库不同步.


Mar*_*ida 8

我有同样的问题.我通过使用git push -f强制更新的命令来修复.


小智 0

有时,您的分支也可能有机会,假设您正在该分支中名为“X”的其他分支工作,有 2 名或更多人员或在工作。如果您从 master 拉取然后推送到这个“x”分支,将会出现此错误。您需要再次从“X”分支拉取并推送到“X”分支。