试图从git中删除文件,现在分支分歧,我无法推动更改

时间:2013-06-26 10:45:22

标签: git gitignore git-push git-commit git-filter-branch

这是我第一次使用git(在bitbucket.org上 - 如果这有什么不同),我向repo提交了一些音频文件,我显然不想要那里。我添加了然后添加了.gitignore的路径,发现这只会忽略进一步的更改。 所以我偶然发现了this SO question并试图使用那里提到的David Underhill's script

但是,现在我收到git commit的以下消息:

# On branch master
# Your branch and 'origin/master' have diverged,
# and have 10 and 10 different commits each, respectively.
#
nothing to commit (working directory clean)

git push

 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'https://bitbucket.org/abc/def'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

所以我尝试了git push --force成功了,但实际上并没有改变回购中的任何东西,甚至没有出现在那里。

你知道我怎么解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

git filter-branch将重写提交的SHA1的历史记录,因此错误消息是有意义的。

如果你的本地仓库在分支主机上并删除了那些文件,那么git push -f将在你的bitbucket仓库上反映出来。

如果没有,可能是因为您没有首先推送本地主人(请{i}}确认)。
因为你({本地})在detached head mode