dki*_*zer 6 git merge branch git-merge
我希望能够在git仓库中保留两个单独的分支,即使分支可能包含类似的内容,也不会意外地合并.
是否有强制分支在git中保持独立的技巧?假设我有分支A和分支B,就像git merge B //assuming A is checked out失败一样.
这里关注的出现是因为在建立一个网站我开发的库我需要的HEAD中的主分支永远是稳定的网站的当前状态.
任何发展承诺我需要在发生发展与分支主题分支的的发展,如果有必要的分支.
C1-C2 master
\
C3-C4-C5-C6-C9-C10-C11 development
\
C7-C8-C12 topic/HEAD
Run Code Online (Sandbox Code Playgroud)
我需要确保主分支和其他分支之间偶然合并的可能性很小.
所以我正在寻找一种方法来介入与主分支合并之间的问题,"这个合并将在网站上发布,你确定要做吗?" 只有在我确认合并后才能通过.
我想这种情况只与Web开发人员相关,代码不需要编译才能运行,并且可能会在实时安装中提取稳定网站的副本.
请注意,与自动提交的git合并不会调用pre-commit钩子.请参阅" git merge自动提交不会触发预提交挂钩 "
commit_tree直接合并调用,因此绕过标准提交挂钩.
修补程序正在进行中.
我相信实现这一点的唯一方法是使用pre-commit hook。从联机帮助页:
该钩子由 git commit 调用,可以使用 --no-verify 选项绕过。它不带任何参数,并且在获取建议的提交日志消息并进行提交之前调用。从此脚本中以非零状态退出会导致 git 提交中止。
因此,如果您确实愿意,可以编写一个预提交挂钩,它检查当前分支和您尝试合并的分支,如果是您不想要的分支,则以非零状态退出。在我的脑海中,我能想到的检查您尝试合并哪个分支的唯一方法是检查文件.git/MERGE_MSG并解析第一行。(另一种方法.git/MERGE_HEAD是告诉您要合并的 SHA1,但没有记录它是什么分支,因此如果两个分支位于同一个位置,那么您就不走运了。
预提交钩子显然不是为了快进合并而运行的;我怀疑是否真的有任何方法可以防止这种情况发生。但想必如果您阻止分支合并,就永远不会进行快进尝试。
| 归档时间: |
|
| 查看次数: |
2453 次 |
| 最近记录: |