Git - 将文件的内容移动到另一个目录中

时间:2011-04-22 11:16:56

标签: git

如何将目录或单个文件的内容移动到另一个目录?

我做了以下git mv Jarryd/movementcommands.c src

得到了这个 fatal: not under version control, source=Jarryd/movementcommands.c, destination=src/movementcommands.c

应该如何移动?

喜欢这个git mv Jarryd/movementcommands.c src/movementcommands.c

4 个答案:

答案 0 :(得分:3)

两种表单都应该有效,但由于您的源文件不受git的控制,因此您不需要git mv,因此需要进行简单的移动和添加。 (我假设Jarryd和src都在你的git工作树中。)

mv Jarryd/movementcommands.c src
git add src/movementcommands.c

答案 1 :(得分:3)

您确定git会跟踪Jarryd/movementcommands.c文件或src文件夹吗?

无论如何你可以试试

mv Jarryd/movementcommands.c src

git add src/movementcommands.c

答案 2 :(得分:1)

确保源目录和目标目录都在git版本控制之下,如错误消息所示。

此外,如果你试图从git子模块中移出一些东西,这可能不会起作用。我不认为git旨在跟踪它。 (如果您不知道此段落的含义,则不适用于您。)

答案 3 :(得分:1)

请注意,在使用Git 2.29(2020年第4季度)之前,src是未合并的路径时,“ git mv src dst man正确地出错了错误消息,声称未跟踪src

含义fatal: not under version control并不总是意味着“未跟踪”。

请参见commit 9b906afChris Torek (chris3torek)(2020年7月20日)。
(由Junio C Hamano -- gitster --commit be2dab9中合并,2020年7月30日)

git-mv:改进了冲突文件的错误消息

签名人:克里斯·托雷克(Chris Torek)

'git mv man'一直抱怨重命名冲突的文件,因为它不能处理一个文件的多个索引条目。但是,它使用的错误消息与未跟踪文件的错误消息相同:

fatal: not under version control, src=...  

这显然是错误的。
区分这两种情况,并添加测试以确保我们产生正确的消息。

如果在合并/重新设置期间移动有冲突的文件,那么新的错误消息将是:

fatal: conflicted

优于:

fatal: not under version control