将已提交的git文件移动到另一个目录

4

我一直在“dev-test”目录中进行开发工作,并逐步提交文件。现在我需要将这些相同的文件提交到不同命名的目录中,并删除“dev-test”目录中提交的文件。我不确定如何保留我的工作文件。

我的“dev-test”存储库是本地的,但我一直在进行跟踪为“master”的拉取操作,但我尚未合并我的代码。


所以你有一个名为 test-dev 的仓库,在其中有一个名为 dev-test 的目录?dev-test 目录的内容是否与您的其他目录相同,并且您想将结果合并到其他目录中?还是另一个目录是全新的,您只需要重命名目录? - Shahbaz
在您的编辑之后:dev-test是存储库还是存储库中的目录? - Shahbaz
请尽量清晰明确地表达,您想要做什么? - CharlesB
@Shahbaz - 抱歉,那是个打错的字。我一直在进行开发测试工作,我想把那些提交的文件从开发测试中移除到一个目录中,以后将与生产代码合并。 - hybrid9
只需使用mv移动文件,然后再提交,git会跟踪它。 - CharlesB
2个回答

29

您可能需要以下其中一项:

  1. 如果这些文件不是对其他文件的修改,只需移动它们。

     $ git mv dev-test/files other-dir
     $ git commit -a
    
  2. 如果您的测试文件是对其他文件进行修改的,您需要获取从开始工作到现在的diff,并将修补程序应用于另一个目录。

如果您想要的是第二种情况,实际上您应该从一开始就采取不同的做法。如果您想要测试某些东西,然后稍后将其应用于主分支,您应该创建一个分支,对其进行操作,如果您满意,则将主分支合并到您的分支中。如果一切正常,则可以将所有内容合并回主分支,并让每个人都知道它。


1

要将文件从一个目录移动到另一个目录,您可以使用git mv命令。例如,您在Git存储库(在我的情况下为gitrepo)中有两个目录a.draftb.pages。您想将文件abc.md从draft移动到pages,请确保您在gitrepo中使用cd进入您的gitrepo(您也可以使用$ git status检查状态),并输入:

[zuha@localhost gitrepo] $ git mv draft/abc.md pages

它将显示类似以下内容的东西。
[zuha@localhost gitrepo] $ renamed: draft/abc.md -> pages/single-batch-ex.md~

现在提交您的文件。
 [zuha@localhost gitrepo] $ git commit -m "first file"

输入您的用户名和密码,然后点击提交按钮。
 [zuha@localhost gitrepo]  $ git push origin (your-branch)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接