我记录了无数个小时,试图解决此问题。我发现了许多类似的问题,但是,还没有找到我能够理解的解决问题的答案。这里是我的问题,我希望你能帮助:将某些文件(不是提交)从一个分支合并到另一个分支
我有一个项目,有一个部署分支(只有脚本和它的配置文件),我推送给github,所以我的客户可以拉最新版本的代码。我有一个开发分支,它具有相同的2个文件,脚本和配置文件,以及许多其他文件(有时数百个,其中一些真的是50到200 MB)。我们称这些分支为'项目'和'项目开发'。开发分支中的文件在编码过程中被填充,添加和提交。
我在项目分支的脚本目录中有一个.gitignore,忽略了所有放置它自己和上面列出的文件。
的.gitignore在我的剧本导演:
*
!.gitignore
!/*.pl
!/*.conf
所以,当我不编码,做我的最后承诺项目的开发,我这样做:
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
我真的只有两个文件,一个脚本及其配置在合并期间过来(可能不在上面的输出中,因为它们处于一个非常长的文件列表中...... )不,没有可以单独列出这些文件的“提交”,当我更新脚本并运行它时,它创建了一堆文件,所有这些文件都在我决定创建时提交的文件中国王OK。
我想/需要-dev分支中的所有这些工作文件,但是,不能在投影面向客户的分支中拥有它们。
有没有办法?或者,如果我在文件和提交之间没有一对一的关系,我是否运气不好?
在此先感谢!
ACC ...
你可以开始一个新的分支,删除你不想要的所有文件,然后将它合并到你想要的位置。如果你不喜欢这种解决方案,可能需要黑暗的魔术贴(特别是“滤镜分支”)。 – PyRulez
是的,我看到一个线程在某处(我的脑袋开始受伤......双关语意)说过滤分支和bfg。过滤分支的东西看起来更像是提交过滤,但是,我可能会误解它。 bfg看起来像一个更容易的选项,但是,在有限的一面仍然有点儿。看起来,git在提交版本方面做得很好,但不是那么多的文件。 – user3220745
是的,那么你可能想要跟我的第一个建议。 – PyRulez