Git将文件移动到文件夹中

jam*_*ean 15 git github

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

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

目录结构过去如下:

主:

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

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

新文件夹1:

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

新文件夹2:

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

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

Amb*_*ber 11

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


Dan*_*man 7

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

然后,查看日志占移动,使用-M,-C或它们的变体git log.类似的标志适用于其他工具,您应该阅读帮助以了解它们的详细信息.

如果您使用git mv的一个文件,它只是做了git rmgit add你.


Chr*_*ain 5

其他海报是正确的,但是如果您想确认 git 会将这些视为移动(而不是删除/创建的组合),请运行git status. 你应该看到:

# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   renamed:    oldfile.txt -> newFolder/newfile.txt
Run Code Online (Sandbox Code Playgroud)

  • 如果 git 确实将移动视为删除/创建的组合,那么该怎么办? (10认同)
  • 分阶段从以前的文件夹中删除文件,然后分阶段在新文件夹中添加文件 - 最有可能的是 git 将其视为重命名。 (2认同)