如何使用Git / IntelliJ将整个文件从一个分支移动/复制到另一个分支?

8
我希望复制整个文件,而不是进行更改。这些文件不存在于一个分支上,需要从另一个分支上复制。在Git或IntelliJ中是否有可能实现?
目前我只能打开差异并复制粘贴文件。但这种方法容易拼错文件名和/或文件位置。我能不能在这里添加一些自动化操作?
2个回答

8

是的,使用git有一种更简单的方法可以将一个分支的所有文件复制到另一个分支。

假设要将branchA的所有文件复制到branchB,那么你可以执行以下命令(也可以在IntelliJ idea终端窗口中执行):

git checkout branchB
git checkout branchA -- .
git commit -m 'copy files from branchA to branchB'

如何选择特定的文件? - Dims
你可以使用特定的文件名或通配符。例如,将 branchA 中的 *.txt 复制到 branchB,你可以使用 git checkout branchA -- *.txt - Marina Liu
我不明白,checkout 命令是否有额外的复制功能?git checkout branchA -- filename 会将 branchA 中的 filename 复制到当前分支,而无需切换到 branchA 吗? - Dims
是的,它确实可以。请参见 https://git-scm.com/docs/git-checkout - Dmitrii Smirnov
@Dims 是的,git checkout 命令有很多功能,不仅仅是切换到另一个分支。 - Marina Liu

3

UPD. 自IntelliJ 2018.3版本以来,在“与工作树比较”对话框内有“获取操作”可用。

旧回复: 命令行git可以做到这一点,但从IntelliJ的“比较分支”中不可能实现。有一个要求添加上述功能 - 请为https://youtrack.jetbrains.com/issue/IDEA-95494投票

作为解决方法,可以使用文件Git历史记录中的“获取”操作。

还有一个插件可以实现此功能https://plugins.jetbrains.com/plugin/10795-git-checkout-files-from-branch


如何在命令行中使用Git? - Dims
请查看玛丽娜的回复。 - Dmitrii Smirnov
回到Eclipse吧! :) - nsandersen

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