为了账号安全,请及时绑定邮箱和手机立即绑定

是否可以在Git中移动/重命名文件并维护它们的历史记录?

是否可以在Git中移动/重命名文件并维护它们的历史记录?

Git
缥缈止盈 2019-07-01 14:53:16
是否可以在Git中移动/重命名文件并维护它们的历史记录?我想重命名/移动Git中的一个项目子树,将它从/project/xyz到/components/xyz如果我用平原git mv project components的所有提交历史记录。xyz project迷路了。有没有办法让历史得以延续?
查看完整描述

3 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

没有。

简单的回答是,不可能在Git中重命名文件并记住历史。这是一种痛苦。

有传言说git log --follow--find-copies-harder将工作,但它对我不起作用,即使文件内容没有任何更改,而且这些移动都是用git mv.

(最初,我使用Eclipse在一个操作中重命名和更新包,这可能会混淆git。但这是一件很普通的事。--follow如果只有一个mv执行,然后commitmv不算太远。)

Linus说,您应该全面了解软件项目的全部内容,而不需要跟踪单个文件。可悲的是我的小脑袋做不到。

它是真烦人有那么多人无意识地重复了GIT自动跟踪动作的说法。他们浪费了我的时间。吉特不做这种事。按设计(!)GIT根本不跟踪移动。

我的解决方案是将文件重命名为原来的位置。更改软件以适应源代码管理。有了吉特,你似乎只需要第一次就把它记好。

不幸的是,这破坏了Eclipse,Eclipse似乎使用--follow.
git log --follow有时不显示具有复杂重命名历史记录的文件的完整历史,即使git log的确如此。(我不知道原因。)

(有一些太聪明的黑客回去重新开始旧的工作,但它们相当可怕。见GitHub-Gist:发射器/git-mv-有历史.)


查看完整回答
反对 回复 2019-07-01
  • 3 回答
  • 0 关注
  • 1053 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信