如何将目录或单个文件的内容移动到另一个目录?
我做了以下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
?
答案 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 9b906af的Chris 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