Git 如何在不同的分支上有不同的文件,而不让它们在合并时互相破坏?

Git 如何在不同的分支上有不同的文件,而不让它们在合并时互相破坏?,git,version-control,heroku,github,Git,Version Control,Heroku,Github,我正在处理的一个项目有两个分支,一个公共分支推送到GitHub,另一个部署分支推送到Heroku。deploy分支包含一个包含密钥的文件,public分支包含LICENSE、README.md和密钥生成器等文件 当我对项目进行更改时,我希望在部署分支上进行更改,然后当我准备好推送时,将其合并到公共分支中,然后将不同的分支推送到各自的远程位置。但是,当尝试将deploy合并到public时,它会添加特定于Heroku的文件,并删除特定于GitHub的文件 我尝试了两种方法来防止这种情况:使存储库同

我正在处理的一个项目有两个分支,一个公共分支推送到GitHub,另一个部署分支推送到Heroku。deploy分支包含一个包含密钥的文件,public分支包含LICENSE、README.md和密钥生成器等文件

当我对项目进行更改时,我希望在部署分支上进行更改,然后当我准备好推送时,将其合并到公共分支中,然后将不同的分支推送到各自的远程位置。但是,当尝试将deploy合并到public时,它会添加特定于Heroku的文件,并删除特定于GitHub的文件


我尝试了两种方法来防止这种情况:使存储库同步并进行完全合并,但使用不同的.gitignore文件,以及在合并时使用.gitattributes文件忽略上述文件。两者似乎都失败了。

执行合并-不提交。编写要签出的文件的脚本/删除不想要的文件。现在git提交

git merge --no-commit origin/my-branch
git checkout --theirs License.txt
rm super-secret-key.txt
git commit

也许你应该重新考虑你的工作流程。如果您真的需要在git存储库中保密,那么最好使用公共分支,并将其合并到deploy分支


我不明白是什么删除了GitHub特定的文件。part的意思是,删除这些文件的原因是什么?

公共分支有自述文件等,而部署分支没有。当我将deploy合并到public中时,它会删除这些文件。