我现在正用头撞钩子和工作树。
我的目标是每当我在任何分支上提交时将“main”合并到所有工作树中。
因此,当我在“main”上提交时,每个分支都会合并更改。
当我在任何其他分支上提交时,它会立即合并“main”以防止冲突。其他分支尝试合并但已经是最新的。
所以我尝试了
.git/hooks/post-commit
#!/bin/sh
for BRANCH in $(ls .git/refs/heads)
do
git checkout $BRANCH #fatal: is already checked out
git switch $BRANCH #same error
git merge main
git commit $BRANCH
done
exit 0
如何切换分支以进行合并和提交?
谢谢你的帮助
编辑 我要解决的问题是:我确实有 5-10 个非常模糊的、未记录的配置文件,它们需要一个通用的主体(主要),这些文件遍布各处,然后为特定设备添加/更改一些行/值. 它似乎对选项的顺序有些敏感。有些我可以四处走动,有些会导致错误消息(“xy 行中的意外参数”)。
主要和分支都进行了更改。
我认为始终在任何分支上(无效)进行合并比仅在特定分支上自动执行合并更容易。
所以功能相当于:
- 提交主要:合并到所有
- 提交 branch01:将 main 合并到 branch01(创建新状态以防止冲突)。
我的工作树是远程分支,很抱歉造成混乱。我是 git 的新手,并且正在与术语作斗争。
当我在 Branch 01 中创建第 1 行“特别到 branch01”时,我确实遇到了冲突,提交。然后在 Main line1 提交上添加“我在每个配置中需要的东西”。合并导致冲突,因为两个更改都是“添加第 1 行 X/Y”