将某些文件(不提交)从一个分支合并到另一个分支

Merge Certain Files (not commits) From One Branch to Another Branch

我花了无数时间来解决这个问题。我发现了许多类似的问题,但是没有找到我可以理解为解决问题的答案。这是我的问题,希望您能帮助解决:

我有一个项目有一个部署分支(只有脚本及其配置文件),我将其推送到 github,以便我的客户可以提取最新版本的代码。我有一个开发分支,其中包含相同的 2 个文件、脚本和配置文件,以及许多其他文件(有时有数百个,其中一些实际上有 50 到 200 MB)。我们称这些分支为 'project' 和 'project-dev'。 dev 分支中的文件在编码过程中被填充、添加和提交。

我在项目分支的脚本目录中有一个 .gitignore,它会忽略所有内容以及我在上面列出的文件。

.git在我的脚本目录中忽略:

*
!.gitignore
!/*.pl
!/*.conf

所以,当我不编码并做最后一次提交到 project-dev 时,我会这样做:

git结帐项目

git 合并项目开发

并且 git 将 project-dev 中的每个文件合并到项目中。但是等等,我在脚本目录中有 .gitignore 文件...没问题,合并的第一个任务删除 .gitignore 文件:(

delete mode 100644 scripts/.gitignore

然后添加所有其他文件...:(

create mode 100644 scripts/0.0.0.0-nets.txt
create mode 100644 scripts/1453134549-all-exported-networks.csv
create mode 100644 scripts/1453392277-all-hosts.csv
create mode 100644 scripts/1453392277-all-networks.csv
create mode 100644 scripts/1453407843-all-hosts.csv
create mode 100644 scripts/1453407843-all-networks.csv
create mode 100644 scripts/1453409789-all-hosts.csv
create mode 100644 scripts/1453409789-all-networks.csv
create mode 100644 scripts/1453415039-all-hosts.csv
create mode 100644 scripts/1453415039-all-networks.csv
create mode 100644 scripts/1453428006-all-hosts.csv
create mode 100644 scripts/1453428006-all-networks.csv
create mode 100644 scripts/1453429183-all-hosts.csv
create mode 100644 scripts/1453429183-all-networks.csv
create mode 100644 scripts/1453432643-all-hosts.csv
create mode 100644 scripts/1453432643-all-networks.csv
create mode 100644 scripts/1453433494-all-hosts.csv
create mode 100644 scripts/1453433494-all-networks.csv
create mode 100644 scripts/1453437439-all-hosts.csv
.
.
.
create mode 100644 scripts/Report_NETS_20160122_103537.txt
create mode 100644 scripts/Report_NETS_20160122_103537.txt
create mode 100644 scripts/Report_NETS_20160122_105113.txt
create mode 100644 scripts/Report_NETS_20160122_105113.txt
create mode 100644 scripts/Report_NETS_20160122_153820.txt
create mode 100644 scripts/Report_NETS_20160122_153820.txt
create mode 100644 scripts/Report_NETS_20160122_155209.txt
create mode 100644 scripts/Report_NETS_20160122_155209.txt
create mode 100644 scripts/all-hosts.dat
create mode 100644 scripts/all-nets.dat
create mode 100644 scripts/exported-networks-headers.csv
create mode 100644 scripts/fixed.csv
create mode 100644 scripts/hosts.csv
create mode 100644 scripts/network-report-headers-some-commented.txt
create mode 100644 scripts/network-report-headers.txt
create mode 100644 scripts/networks-headers.csv
create mode 100644 scripts/networks.csv
create mode 100644 scripts/refactored.txt
create mode 100644 scripts/test-host.csv
create mode 100644 scripts/test-network.csv

实际上我只需要 2 个文件,一个脚本及其配置在合并期间出现(可能不在上面的输出中,因为它们位于列出的一个非常长的文件的中间... ).不,没有 'commit' 可以挑出文件。当我更新脚本并 运行 它时,它会创建一堆文件,所有这些文件都在我确定一切正常时创建的提交中。

我想要/需要 -dev 分支中的所有这些工作文件,但是不能将它们放在面向客户的投影分支中。

有办法吗?或者,如果我在文件和提交之间没有一对一的关系,我会倒霉吗?

提前致谢!

符合...

你试过这个吗:

git结帐'project'

git结帐'project-dev'script_file_name

git结帐'project-dev'config_file_name

它应该从您的 'project-dev' 分支中获取这 2 个文件到您的项目分支中。