【发布时间】:2016-08-25 21:07:36
【问题描述】:
---更新---
有没有办法在所有分支中拥有全局文件,例如使用 Git Hooks 来检测文件更改并将更改推送到所有分支?
例如:
- 我们有 5 个不同的分支,它们都有不同的提交 他们。
- 它们都包含一个自述文件。
- 它们都基于 master 分支。
我们希望当自述文件在任何地方发生更改时,它会在所有分支中更新其他分支。
我明白分支分离背后的想法,但更新 6 个自述文件很糟糕。
从 cmets 看来,这似乎可以通过 git hooks 实现......那么,您将如何创建一个 hook 来检测 README 文件是否从任何分支更改并提交/推送到所有其他分支?
【问题讨论】:
-
您可以将主分支合并回您的单独分支;例如
git merge master。你也可以使用git cherry-pick来合并特定的提交(而不是所有的提交)。 -
@Carpetsmoker 没错,我一直在做的事情——我试图避免一遍又一遍地做这个动作。此外,有时有人在分支#1 中更新自述文件,在分支#4 中更新不同的更新,如果你在分支#2 中你不知道,哈哈。我希望这个文件是否更新 ping 所有自述文件以更新。
-
这可以使用
post-commit钩子来完成,该钩子会选择提交到所有其他分支。您必须特别注意您的条件检查,例如仅更改 README 文件以防止传播其他更改。 -
由于您的特定用例是 README 文件,您还可以考虑为文档创建一个专用分支,例如
gh-pages,甚至不要在其他分支中使用它。我个人将它保存在项目根目录docs文件夹中,并开发特定于分支的文档,在分支的其余部分也准备好之前不会合并到 master 中。对于我的大多数用例,保持文档与代码库同步是有意义的,因此它自然遵循 rebase 主流程。 -
这些长期存在的分支是不是设计为永远不会合并回主分支?
标签: git github bitbucket branching-and-merging githooks