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

时间:2012-05-11 18:57:00

标签: git version-control heroku github

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

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

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

2 个答案:

答案 0 :(得分:0)

进行合并--no-commit。编写您想要/删除您不想要的文件的文件的脚本。现在git commit。

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

答案 1 :(得分:0)

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

我不明白“删除特定于GitHub的文件”。部分意味着什么导致删除这些文件?