从一个Git分支复制文件到另一个Git分支



我正在寻找一种更简单的方法,将特定的文件和目录从一个git分支复制到另一个分支,而不需要提交它们。

,

  • 两个分支-devprod
  • 文件service/web/company.html同时存在于devprod分支中。我想把这个文件从dev复制到prod,修改一下,然后提交到prod

目前我所做的是:

  • 将git存储库克隆2次到不同的目录(git_dev &git_prod)和切换它们的分支(git checkout)。

  • cp -f git_dev/service/web/company.html git_prod/service/web/company.html

有文件和目录目前提交到dev分支,我想复制到prod分支,修改它们,然后提交到prod分支。

使用git checkout:

  1. 切换到要使用

    复制到的分支
    git checkout <TARGET_BRANCH>
    
  2. "检查out"您希望使用

    从分支中获取的文件或目录
    git checkout <SOURCE_BRANCH> <PATH>
    

在切换分支和获取文件时使用checkout可能有点令人困惑,但这就是它的工作原理。checkout子命令的官方文档:

git-checkout-切换分支或恢复工作树文件

[…]

更新工作树中的文件以匹配索引或指定树中的版本。如果没有指定路径,git checkout也会更新HEAD,将指定的分支设置为当前分支。

这是不是最容易做到的。你可以签出目标分支,然后让git把其他分支上的文件给你:

git checkout prod
git restore --worktree --staged source=dev -- file1 file2
git commit -m "file1 and file2 as they are in dev right now"
顺便说一下,该操作与dev分支没有关系…这就好像你手工编辑了文件来匹配dev分支的内容。

最新更新