1

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

但是,现在我收到以下消息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成功的方法,但实际上并没有改变回购协议中的任何内容,甚至没有出现在那里。

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

4

1 回答 1

1

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

如果您的本地 repo 位于分支 master 上并且删除了这些文件,那么git push -f将在您的 bitbucket repo 上镜像。

如果没有,可能是因为您一开始没有推送本地主机(尽量git push -f origin master确定)。
Ir,因为您(本地)处于分离头模式

于 2013-06-26T12:32:01.083 回答