这是我第一次使用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
成功了,但实际上并没有改变回购中的任何东西,甚至没有出现在那里。
你知道我怎么解决这个问题吗?
答案 0 :(得分:1)
git filter-branch
将重写提交的SHA1的历史记录,因此错误消息是有意义的。
如果你的本地仓库在分支主机上并删除了那些文件,那么git push -f
将在你的bitbucket仓库上反映出来。
如果没有,可能是因为您没有首先推送本地主人(请{i}}确认)。
因为你({本地})在detached head mode。