Git hook when a new branch is created and/or pushed

匿名 (未验证) 提交于 2019-12-03 01:47:02

问题:

I want to hook into the creation of a new branch. Either when the branch is created or when the first push is done. Is one or both possible?

回答1:

It's the update hook, it gets a zero sha for new refs, branches will say heads not tags



回答2:

The accepted answer says to use the update hook. I'm not sure that helps everyone, as that is a server-side hook. It will work if you push your new branch, but what about keeping it purely local?

I'm creating local branches that are never pushed, so I'm using post-checkout instead. After creating your branch, aren't you typically going to check it out before doing anything else with it? When I detect a new branch, I modify it and add a commit automatically. After that, I'm able to determine if this is a new branch on a checkout by virtue of whether it has a commit history.

Here's how I do it (my hooks are in bash):

true=1 false=0  isNewBranch() {        local logQuery=$(git log --all --not $(git rev-list --no-walk --exclude=refs/heads/$(getBranchName) --exclude=HEAD --all))       if [ -z $logQuery ]; then          echo $true     else         echo $false     fi   }  getBranchName() {     echo $(git rev-parse --abbrev-ref HEAD) } 


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!