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



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

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

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

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

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

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

我不明白"删除特定于GitHub的文件"部分是什么意思,是什么原因导致这些文件被删除?

最新更新