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

时间:2016-01-22 22:13:17

标签: git git-merge

我已经记录了无数个小时试图解决这个问题。我发现了很多类似的问题,但是,我没有找到解决问题的答案。这是我的问题,我希望你可以提供帮助:

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

我在项目分支的脚本目录中有一个.gitignore,忽略了自己和上面列出的文件。

.gitignore在我的脚本目录中:

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

所以,当我没有编码并完成我对project-dev的最后一次提交时,我会这样做:

git结帐项目

git merge project-dev

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个我想要的文件,一个脚本及其配置在合并过程中出现(可能不在上面的输出中,因为它们位于列出的真正长文件的中间......)。不,没有'承诺'可以挑出文件。当我更新脚本并运行它时,它会创建一堆文件,所有这些文件都是在我确定工作正常时创建的提交中。

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

有办法吗?或者,如果我在文件和提交之间没有一对一的关系,我是否运气不好?

提前致谢!

... ACC

1 个答案:

答案 0 :(得分:1)

你试过这个:

git checkout'project'

git checkout'project-dev'script_file_name

git checkout'project-dev'config_file_name

它应该将你的'project-dev'分支中的那两个文件放到你的项目分支中。