Git 跨子模块移动文件

Git move files accross submodules

我有一个使用子模块 B 的存储库 A。 Repo A 将文件 file.filetype 作为跟踪对象。我想将该文件移动到 B。我不一定要保留历史记录,但我想对 B 的任何用户都非常清楚,该文件不仅仅是新创建的,而是从 A 移走的(例如通过提供URL 到 A 和文件被移走的修订)。同样,在 A 上,我希望明确说明发生了什么:在此版本中,文件已移至 B,可以从某个版本开始找到它。

我试过git mv,好像有用,但是现在在A上,git status也告诉我B已经被删除了,还有一些B 的(如果不是全部)文件被认为是“未跟踪文件”,这不仅奇怪而且令人担忧。然而,在 B 内部,一切或多或少都很好 - 它注意到一个新文件的出现,因此未被跟踪。它悲伤的不知道从哪里来,但是它看到了。

有什么建议吗?

手动取消git mvgit reset HEAD)和运行操作:

  • 使用 mv
  • 将磁盘上的文件从 A 移动到 B
  • 来自子模块 B:添加文件并提交,并在消息中提及您想要的信息:“从 repo A (commitid-in-A) 导入的文件”
  • fome repo A:提交文件删除和子模块的新状态 B,提交消息中提到您想要的信息:“文件已移至 B(commit-id-in-B)"