如何将目录或单个文件的内容移动到另一个目录?
我执行了以下命令: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
。
如何将目录或单个文件的内容移动到另一个目录?
我执行了以下命令: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
。
这两种形式都可以工作,但由于您的源文件不受git控制,所以您不需要使用git mv
命令,只需进行简单的移动和添加即可。(我假设Jarryd和src都在您的git工作树中。)
mv Jarryd/movementcommands.c src
git add src/movementcommands.c
Jarryd/movementcommands.c
文件或 src
文件夹被 Git 追踪了吗?mv Jarryd/movementcommands.c src
git add src/movementcommands.c
确保源目录和目标目录都在git版本控制下,就像错误信息所说的那样。
此外,如果您尝试将某些内容移出git子模块,则可能无法正常工作。我认为git并不是为了跟踪这个而设计的。(如果您不知道本段话的含义,则不适用于您。)
git mv src dst
(man)" 当 src
是一个未合并的路径时,会正确报错但错误地显示错误信息声称 src
未被跟踪。
意思是 fatal: not under version control
并不总是表示“未跟踪”。
请查看 2020年7月20日由{{link2:Chris Torek (chris3torek
)提交的提交9b906af。
(于2020年7月30日由Junio C Hamano -- gitster
--在提交be2dab9中合并)
git-mv
:改进冲突文件的错误消息署名作者:Chris Torek
如果您在合并/变基过程中移动具有冲突的文件,则新的错误提示消息将是:'
git mv
(man) ' has always complained about renaming a conflicted file, as it cannot handle multiple index entries for one file. However, the error message it uses has been the same as the one for an untracked file:
fatal: not under version control, src=...
which is patently wrong.
Distinguish the two cases and add a test to make sure we produce the correct message.
fatal: conflicted
这比以下更好:
fatal: not under version control
git mv
"(man) 在大小写不敏感系统上的一个边缘情况 bug,该 bug 是在2.29时期引入的。c:\git_CAP\repo_MFW2>git mv mfw2/application/phaseCalc_IQ_Xiong.hpp PC_phaseTest/phaseCalc_IQ_Xiong.hpp
Assertion failed: pos >= 0, file builtin/mv.c, line 295
请查看提交 93c3d29(2021年3月1日)由Torsten Bögershausen (tboegi
)完成。
(由Junio C Hamano -- gitster
--合并于提交 ef486a9,2021年3月19日)
在不区分大小写的文件系统上(严格来说,使用
93c3d297b5
:git mv foo FOO
;git mv foo bar
报告人: Dan Moseley
签署者: Torsten Bögershausen
core.ignorecase=true
),以下序列会导致断言失败并留下.git/index.lock
。
git init
(man) echo foo >foo git add
(man) foo git mv
(man) foo FOO git mv
foo bar
这个回归是在提交9b906af中引入的(git-mv
:改进冲突文件的错误消息,2020-07-20,Git v2.29.0-rc0 -- merge列在batch#1中)。ce_stage(ce)
的"ce
"指针。git-for-windows/git
issue 2920。