如何使用 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'

【讨论】:

如何只选择某些文件? 您可以使用某些文件名或通配符。比如将*.txtbranchA复制到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/GIT:如何从提交窗口清除/删除文件?

intellij 创建一个文件自动就add到git了,这个怎么取消

你如何让 Git 与 IntelliJ 一起工作?

如何让 git 通过代理和 IntelliJ Idea 工作?

IntelliJ IDEA - 如何添加 Git 到 Project?

IntelliJ IDEA - 如何添加 Git 到 Project?