Git将文件移动到文件夹中

时间:2012-02-11 01:40:21

标签: git github

我对git和版本控制一般都很陌生,并对移动文件有疑问。我在GitHub上有一个主仓库,有6个源文件。

我在这个项目上做了很多工作,现在我的本地分支包含两个文件夹,其中有源代码。

过去的目录结构如下:

站长:

  • 档案1
  • 文件2
  • 文件3
  • 文件4
  • 文件5
  • 文件6

我的本​​地分支现在看起来像这样:

新文件夹1:

  • 新文件1
  • 新文件2
  • 新文件3

新文件夹2:

  • 档案1
  • 文件2
  • 文件3
  • 文件4
  • 文件5
  • 文件6

如何将本地结构移动到主分支而不会丢失旧文件的提交历史记录?

4 个答案:

答案 0 :(得分:11)

提交。 Git blame等通常可以很好地自动检测动作。

答案 1 :(得分:7)

git实际上并不跟踪文件的“移动”,它根据需要从类似内容推断出来。因此,只需移动并添加/删除文件即可。 (如果您避免对内容进行更改以及在一次提交中移动它们,您将在以后使工具更轻松。)

然后,要查看移动的日志记帐,请使用-M-C或其变体git log。类似的标志适用于其他工具,您应该阅读帮助以了解他们的工作细节。

如果您对文件使用git mv,则会为您执行git rmgit 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

提交时,文件将移至该文件夹。如果该文件夹不存在,则会创建该文件夹。