无法将更改推送到存储库(GIT)

时间:2016-03-11 22:09:33

标签: git

我似乎做错了什么:

$ git add .
$ git status
On branch master
nothing to commit, working directory clean
$ git commit -m 'Task #2 after accepting'
On branch master
nothing to commit, working directory clean
$ git push origin master
To https://my_repository@bitbucket.org/my_repository/bla.git
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'https://my_repository@bitbucket.org/my_repository/bla.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

我不知道如何让GIT像以前那样工作,我不记得了,除了在其他文件夹中移动本地存储库之外,我用git本地目录做了一些事情。

2 个答案:

答案 0 :(得分:2)

错误消息是“遥控器包含您所做的工作 提示:没有本地“。为了推动你的提交,你应该首先将它与项目的其余部分集成。

首先,在完成提交后创建一个新的本地分支:

git checkout -b task2

然后,结账大师。此时,您必须将当前主分支(旧主机+ 1提交)转换为新主分支(旧主机+远程存储库中的更改)。为此,请从主分支中删除最后一次提交(不要担心,您的更改不会丢失,它们会被task2分支引用)并拉出新的更改:

git checkout master
git reset --hard HEAD~1
git pull

您的主分支应该看起来像远程主分支。现在,返回到您的task2分支并将其重新绑定为master,以便将提交放在master中的提交列表之上:

git checkout task2
git rebase master

(解决冲突,如果有的话,添加文件并输入git rebase --continue)

现在,您的task2分支包含您的提交以及远程服务器中的所有提交。您现在可以再次将更改恢复为master,并推送您的提交:

git checkout master
git merge task2
git push origin master

答案 1 :(得分:1)

您可以强制推送到您的存储库。尝试使用此命令

git push -f origin master