2015-07-22 107 views
2

我打算编写一个预提交挂钩。它应该在分支出文件之后检查主分支是否有任何版本。预先挂钩检查git中的版本

例子。 1月1日,一个文件abc.txt从master分支出来。假设分支名称是BR1.X.在BR1.x分支上,该文件一直工作到1月10日。在MAster分支上说,1月5日发生了一些变化。所以提交前应该给出一条消息,说明在分支之后在master上发生了变化。请帮助如何从git获取这些细节?

回答

2
  1. 查找当前分支的共同祖先和主分支:

    ANCESTOR=`git merge-base HEAD master` 
    
  2. 查找正在上演的文件提交:

    STAGED=`git diff --cached --name-only --diff-filter=ACM` 
    
  3. 检查,如果这些文件有已在主版本上修改:

    git diff --name-only $ANCESTOR master $STAGED 
    

并做任何你需要做的这个信息