git 서버 후크는 git 클라이언트의 커밋 정보를 어떻게 얻나요?
怪我咯
怪我咯 2017-05-17 10:03:16
0
2
799

git 서버 측에는 세 개의 후크가 있습니다

으아악

수신 후 스크립트를 실행하고 싶은데 클라이언트가 푸시할 때 푸시되는 브랜치 이름을 알고 싶습니다. 그러나 많은 정보를 참조한 후에도 후크 스크립트가 클라이언트 푸시 정보를 얻는 방법에 대한 언급은 없습니다.

예를 들어, git 클라이언트 a는 hotfix1.2.3 브랜치의 일부 업데이트를 git 서버 b에 푸시합니다. 이 푸시 동작의 브랜치 이름인 hotfix1.2.3을 기반으로 git 서버 b의 후크에서 스크립트를 실행하고 싶습니다. 어떻게 하나요?

怪我咯
怪我咯

走同样的路,发现不同的人生

모든 응답(2)
PHPzhong

Server-side Hooks 링크의 내용에 따르면 사전 수신과 마찬가지로 사후 수신도 실행 전에 3개의 매개변수를 얻음을 알 수 있습니다.
<old-value> ;참조 이름><old-value> <new-value> <ref-name>

The script takes no parameters, but each ref that is being pushed is passed to the script on a separate line on standard input in the following format:
<old-value> <new-value> <ref-name>

b6b36c697eb2d24302f89aa22d9170dfe609855b 85baa88c22b52ddd24d71f05db31f4e46d579095 refs/heads/master

所以既然知道了ref-name和相应的hash值,就可以根据git相应的命令得到对应的信息.如git log refs/heads/master

스크립트는 매개변수를 사용하지 않지만 푸시되는 각 참조는 다음 형식으로 표준 입력의 별도 줄에서 스크립트에 전달됩니다.🎜<old-value> & lt; 참조 이름 & gt; 🎜 B6B36C697EB2D24302F89AA22D9170DFE609855B 85baa88C22DDDD71F05D579095 Refs/H Eads/Master 🎜
🎜이제 ref-name과 해당 hash 값을 알았으므로 해당 git 명령에 따라 해당 정보를 얻을 수 있습니다. 예를 들어 git log. 심판/헤드/마스터.🎜
刘奇

https://git-scm.com/book/zh/v...

다른 후크는 입력 스트림에서 다른 매개변수를 전달합니다.

사전 수신pre-receive
处理来自客户端的推送操作时,最先被调用的脚本是 pre-receive。 它从标准输入获取一系列被推送的引用。如果它以非零值退出,所有的推送内容都不会被接受。 你可以用这个钩子阻止对引用进行非快进(non-fast-forward)的更新,或者对该推送所修改的所有引用和文件进行访问控制。

update
update 脚本和 pre-receive 脚本十分类似,不同之处在于它会为每一个准备更新的分支各运行一次。 假如推送者同时向多个分支推送内容,pre-receive 只运行一次,相比之下 update 则会为每一个被推送的分支各运行一次。 它不会从标准输入读取内容,而是接受三个参数:引用的名字(分支),推送前的引用指向的内容的 SHA-1 值,以及用户准备推送的内容的 SHA-1 值。 如果 update 脚本以非零值退出,只有相应的那一个引用会被拒绝;其余的依然会被更新。

post-receive클라이언트에서 푸시 작업을 처리할 때 호출되는 첫 번째 스크립트는 사전 수신입니다. 표준 입력에서 일련의 푸시된 참조를 가져옵니다. 0이 아닌 값으로 종료되면 모든 푸시 콘텐츠가 허용되지 않습니다. 이 후크를 사용하면 참조에 대한 빨리 감기가 아닌 업데이트를 방지하거나 푸시로 수정된 모든 참조 및 파일에 대한 액세스를 제어할 수 있습니다.

update🎜업데이트 스크립트는 업데이트할 각 분기에 대해 한 번 실행된다는 점을 제외하면 사전 수신 스크립트와 매우 유사합니다. 푸셔가 동시에 여러 분기에 콘텐츠를 푸시하는 경우 사전 수신은 푸시된 각 분기에 대해 한 번 실행되는 업데이트와 달리 한 번만 실행됩니다. 표준 입력에서 콘텐츠를 읽지 않지만 참조(분기) 이름, 푸시 전 참조가 가리키는 콘텐츠의 SHA-1 값, 푸시 전 콘텐츠의 SHA-1 값이라는 세 가지 매개변수를 사용합니다. 사용자가 푸시하려고 합니다. 업데이트 스크립트가 0이 아닌 값으로 종료되면 해당 참조만 거부되고 나머지는 계속 업데이트됩니다. 🎜 🎜수신 후🎜수신 후 후크는 전체 프로세스가 완료된 후 실행되며 다른 시스템 서비스를 업데이트하거나 사용자에게 알리는 데 사용할 수 있습니다. 사전 수신과 동일한 표준 입력 데이터를 허용합니다. 메일링 리스트에 게시, 지속적인 통합 서버에 알리기, 티켓 추적 시스템 업데이트 등의 용도로 사용됩니다. 커밋 정보를 분석하여 티켓을 켜야 하는지, 수정해야 하는지, 꺼야 하는지 판단할 수도 있습니다. 이 스크립트는 푸시 프로세스를 종료할 수 없지만 클라이언트는 실행이 완료될 때까지 연결을 유지하므로 다른 작업을 수행하려는 경우 시간이 오래 걸리므로 주의해서 사용하세요. 🎜
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿