如何使用 Git / IntelliJ 将整个文件从一个分支移动/复制到另一个分支? [复制]
Posted
技术标签:
【中文标题】如何使用 Git / IntelliJ 将整个文件从一个分支移动/复制到另一个分支? [复制]【英文标题】:How to move/copy entire file from one branch to another with Git / IntelliJ? [duplicate] 【发布时间】:2018-11-27 15:26:22 【问题描述】:我想复制的不是更改,而是整个文件,它们不存在,从另一个分支到一个分支。
这可以通过 Git 或 IntelliJ 实现吗?
目前我正在打开 diff 并复制粘贴文件。但这样我很容易拼错文件名和/或文件位置。我可以在这里添加一些自动化吗?
【问题讨论】:
【参考方案1】:是的,有一种更简单的方法可以通过 git 将所有文件从一个分支复制到另一个分支。
假设将branchA
的所有文件复制到branchB
,则可以执行以下命令(也可以在IntelliJ idea终端窗口中执行):
git checkout branchB
git checkout branchA -- .
git commit -m 'copy files from branchA to branchB'
【讨论】:
如何只选择某些文件? 您可以使用某些文件名或通配符。比如将*.txt
从branchA
复制到branchB
,可以用git checkout branchA -- *.txt
代替。
我不明白,checkout
命令是否有额外的复制功能? git checkout branchA -- filename
将文件名从 branchA
复制到当前分支而不切换到 branchA
?
是的,确实如此。见git-scm.com/docs/git-checkout
@Dims 是的,git checkout 命令除了切换到另一个分支之外,还有很多功能。【参考方案2】:
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怎么办? 查看玛丽娜的回复 然后返回 Eclipse! :)以上是关于如何使用 Git / IntelliJ 将整个文件从一个分支移动/复制到另一个分支? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
intellij 创建一个文件自动就add到git了,这个怎么取消
如何让 git 通过代理和 IntelliJ Idea 工作?