【问题标题】:Moving committed git files to another directory将提交的 git 文件移动到另一个目录
【发布时间】:2012-06-04 15:31:43
【问题描述】:

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

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

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

git reset --soft #commitID

【问题讨论】:

  • 所以你有一个test-dev repo,你有一个dev-test 目录? dev-test 的内容是否与您的其他目录相同,并且您想将结果与其他目录合并?还是其他目录是全新的,您只需要重命名目录?
  • 编辑后:dev-test 是 repo 还是 repo 中的目录?
  • 请尽量说清楚,你想做什么?
  • @Shahbaz - 抱歉,这是一个错字。我一直在开发测试中工作,我想将提交的文件从该开发测试中删除到稍后将与生产代码合并的目录。
  • 只需用 mv 移动文件并再次提交,git 会跟踪它

标签: git commit reset


【解决方案1】:

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

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

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

    李>

如果你想要的是第二个,实际上你应该从一开始就做不同的事情。如果你想测试一些东西,然后将它应用到 master,你应该创建一个分支,处理它,如果你满意,将 master 合并到你的分支中。如果一切正常,那么您可以将所有内容合并回 master 并让每个人都知道。

【讨论】:

  • 谢谢,我想太多了。感谢您的时间和耐心。
【解决方案2】:

要将文件从一个目录移动到另一个目录,您可以使用 git mv 命令。 例如,您有 2 个目录 a.draft, b.pages 在您的 git 存储库中(在我的例子中,gitrepo 是名称)。你想将文件 abc.md 从草稿移动到页面确保你在你的 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)

【讨论】:

    猜你喜欢
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    • 2021-02-17
    • 2017-07-20
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多