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

时间:2012-06-04 15:31:44

标签: git commit reset

我一直在'dev-test'目录中进行开发工作,并在此过程中提交文件。我现在需要将这些相同的文件提交到不同名称的目录,并删除'dev-test'目录中的已提交文件。我不确定如何保留我的工作文件。

我的'dev-test'repo是本地的,但我一直在做跟踪为'master'的拉动,但我还没有合并我的代码。

我可以在第一次提交这些文件之前使用git reset,因为其他开发人员已经合并为'master':

git reset --soft #commitID

2 个答案:

答案 0 :(得分:26)

你的问题仍然有点不清楚,但你可能想要其中一个:

  1. 如果文件不是对其他文件的修改,只需移动文件

    $ git mv dev-test/files other-dir
    $ git commit -a
    
  2. 如果您的测试文件是对其他文件的修改,您可能希望从启动它到现在获得diff工作,并将修补程序应用到其他目录。

  3. 如果你想要的是第二个,你应该从一开始就做了不同的事情。如果你想测试一些事情然后将它应用到master,你应该创建一个分支,对它进行处理,如果你满意,将master合并到你的分支中。如果一切都很好,那么你可以将所有东西合并回主人并让每个人都知道它。

答案 1 :(得分:2)

要将文件从一个目录移动到另一个目录,您可以使用 git mv 命令。 例如,您有2个目录 你的git存储库上的 a.draft b.pages (gitrepo就是我的名字)。你想将文件abc.md从草稿移到页面,确保你在gitrepo中使用 cd 转到你的gitrepo(你可以通过 $ git status <检查状态< / strong>以及)写:

[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)