将一个文件夹从master分支复制到另一个分支的Git操作

68

我有一个名为utils的文件夹,我想将这个文件夹从master分支复制到work分支。我应该怎么做?


你的意思是你不再想把它放在“master”上,但你确实想要它在“work”上吗?还是你只是想将其复制到“work”上? - Carl Norum
@CarlNorum问题已更新 - user2579475
1
我相信你可以使用 git subtree push 命令来完成这个操作。请参考 https://gist.github.com/cobyism/4730490 获取示例。 - BlueRaja - Danny Pflughoeft
1个回答

129

复制文件夹的操作如下:

$ git checkout work
Switched to branch 'work'
$ git checkout master -- utils
$ git add utils
$ git commit -m "Adding 'utils' directory from 'master' branch."
[work 9fcd968] Adding 'utils' directory from 'master' branch.
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 utils/file

如果您想在此之后从 master 中删除它:

$ git checkout master
Switched to branch 'master'
$ git rm -r utils
rm 'utils/file'
$ git commit -m "Removing 'utils' directory."
[master c786f95] Removing 'utils' directory.
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 utils/file

然后你只需要根据需要执行git push。Git在您的项目中的输出可能会有所不同;我只是在这里创建了一个简单的测试库,其中仅包含utils目录中的一个文件。


4
仅供考虑,当“work”和“master”再次合并时,由于双方进行的不同操作,将会出现冲突。 - Maic López Sáenz
有趣的是,我尝试过这个。当我将我的分支合并回master时,没有出现冲突。也许Git变得更智能了? - clinux
@Carl Norum,copy示例是否也适用于将已经存在于工作分支的utils文件夹更改为master版本? - aerijman
这个命令会在分支中添加整个 utils 文件夹。我只想要 utils 文件夹中的内容在分支中,该怎么做? - Allen Savio
git checkout master -- utils 步骤之后,可以进行任何布局更改,然后将 add 步骤更改为与您实际想要的分支匹配。 - Carl Norum
显示剩余2条评论

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