2012-03-20 3 views
8

On GitHub :GIT 및 GitHub - 누가 커밋을 저장소로 착륙 시켰는지 어떻게 알 수 있습니까?

Eve는 인기있는 프로젝트의 포크에 코드를 작성하고 "Eve" <[email protected]>으로 커밋하고 pull 요청을 업스트림으로 보냅니다.

앨리스는 Eve의 코드가 자신이 일하는 인기있는 프로젝트의 백도어를 포함하고 있으며, 코드가 훌륭하다고 생각하고 풀 요청을 병합한다는 사실을 알지 못합니다.

나중에 모든 사람이 소유하게됩니다.

앨리스의 보스 인 Bob은 코드를 작성한 사람을 해고하고 싶습니다. 그는 git log --full을 수행하고,보고 :

commit deadbeef 
Author: Eve <[email protected]> 
Commit: Eve <[email protected]> 

git log --fuller

도움이되지 않으며, 이브는 저장소에 직접 푸시 권한이 없습니다.

Bob은 끌어 오기 요청 내역을 찾아서 그런 식으로 찾을 수 있지만 그게 끔찍합니다. 이 문제를 로컬에서 파악할 수있는 방법이 있습니까?

답변

3

일반적으로 git를 사용하면 git signoff (What is the Sign Off feature in Git for? 참조)를 사용하고 서명 후크가없는 푸시를 거부하는 업데이트 훅을 추가 할 수 있습니다. 그것을이 이미 일어난 사건이었다 경우

http://help.github.com/post-receive-hooks/

그러나, GitHub의는 일반적으로 사용자 정의 후크를 허용하지 않는 것,하지만 당신은 미래의 모든 푸시 이벤트를 기록 후 수신 후크를 추가 할 수 있습니다 추적하기가 어렵거나 불가능할 수 있습니다. git reflog 및 ssh 로그를 볼 수는 있지만 GitHub에서 이러한 정보를 제공하는지 여부는 확실하지 않습니다. 보안 침해가 실제로 발생한 경우 최소한 로그가 있는지 묻는 것이 좋습니다.

+0

Git Signoff에 대한 포인터를 보내 주셔서 감사합니다. 전에는 보지 못했지만 앞으로 나아질 수도 있습니다. –

+1

내가 말할 수있는 한 멀리 파고 들자 이것은 매우 불가능하다. 내가 얻은 다른 제안은 github에서 자동 병합 버튼을 사용하지 않아야한다는 것입니다. 대신 로컬 체크 아웃을 수행하고 댄스를 병합하여 명시 적으로 커미터를 모든 것에 할당하십시오. –

관련 문제