【发布时间】:2012-10-31 22:07:51
【问题描述】:
所以 - 今天我想做一件好事并重新排列我的存储库中的文件。提交并推送到我的Assembla 存储库。
由于我没有使用 git 移动命令,所有文件都丢失了历史记录。我意识到自己的错误,并想摆脱不必要的改变,这样我就可以在之后做出正确的举动。 我尝试了here 中显示的方法,但我得到了:
$ git push -f origin 49bcfdceb30a1e9cfab0f0e7e39bfa04dc726b78:master
Total 0 (delta 0), reused 0 (delta 0)
remote: error: denying non-fast-forward refs/heads/master (you should pull first)
To git@git.assembla.com:myproject.git
! [remote rejected] 49bcfdceb30a1e9cfab0f0e7e39bfa04dc726b78 -> master (non-fast-forward)
error: failed to push some refs to 'git@git.assembla.com:myproject.git'
信息:
% 49bcfdceb30a1e9cfab0f0e7e39bfa04dc726b78 is the one tagged 'beforerearrange'
关于如何解决此问题的任何建议?
【问题讨论】:
-
git mv只是移动文件、从存储库中删除旧名称并添加新名称的快捷方式。你是否使用它不会影响 git 是否有你的文件的历史信息。 git 在任何情况下实际上都不会记录任何文件重命名,它会在您稍后查看历史记录时推断出来。 -
@qqx - 我也这么认为,直到我注意到当你执行
git mv -f -k source.m destfolder/folder,git status -s提供重命名而不是删除和创建节点。