我对git和版本控制一般都很陌生,并对移动文件有疑问。我在GitHub上有一个主仓库,有6个源文件。
我在这个项目上做了很多工作,现在我的本地分支包含两个文件夹,其中有源代码。
过去的目录结构如下:
站长:
我的本地分支现在看起来像这样:
新文件夹1:
新文件夹2:
如何将本地结构移动到主分支而不会丢失旧文件的提交历史记录?
答案 0 :(得分:11)
提交。 Git blame等通常可以很好地自动检测动作。
答案 1 :(得分:7)
git实际上并不跟踪文件的“移动”,它根据需要从类似内容推断出来。因此,只需移动并添加/删除文件即可。 (如果您避免对内容进行更改以及在一次提交中移动它们,您将在以后使工具更轻松。)
然后,要查看移动的日志记帐,请使用-M
,-C
或其变体git log
。类似的标志适用于其他工具,您应该阅读帮助以了解他们的工作细节。
如果您对文件使用git mv
,则会为您执行git rm
和git add
。
答案 2 :(得分:4)
其他海报是正确的,但是如果你想确认git会将这些视为移动(而不是删除/创建的组合),请运行git status
。你应该看到:
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# renamed: oldfile.txt -> newFolder/newfile.txt
答案 3 :(得分:0)
在github中,如果你没有太多文件要移动,一个有趣的选择是编辑文件,并将其名称改为:
folder_to_move_into/file_name
提交时,文件将移至该文件夹。如果该文件夹不存在,则会创建该文件夹。