입니다. 근본적으로, 과거의 git 커밋을 보려면 git log를 사용하는 것이 좋습니다. 그러나 우리 회사에서 우리는 한 커밋에 대해 gerrit로 작업하고 커밋에 대한 수정을합니다. 특정 커밋에 대한 모든 과거 수정 사항을 어떻게 볼 수 있습니까? 그래서 커밋 메시지를 볼 수 있으며 수정 사항을 서로 비교할 수 있습니까? 감사!로그 수정 방법은
답변
있습니다 . 질문에 diff가 표시되는 방법을 지정하지 않으므로 여기에 가능한 해결책 중 하나가 있습니다.
port
ssh -p <port> <username>@<gerrithost> gerrit query commit:<commit-id> --patch-sets --format=json
-
는 기본적으로 29418입니다;
username
은 실행할 gerrit 사용자 이름입니다.gerrit query
. 저장소 의 참조를 읽을 수있는 권한을 부여 받아야합니다.gerrithost
은 gerrit의 호스트 이름 또는 IP 주소입니다.commit-id
은 커밋의 sha1 값입니다.--format=json
은 선택 사항입니다. 기본 형식은text
입니다.ref: refs/changes/90/812290/3 ref: refs/changes/90/812290/2 ref: refs/changes/90/812290/1
이러한 리트마다 대해 생성 심판이 그
refs/for
대상으로 푸시 커밋
출력 등의 항목을 포함하는 변화의 패치 세트에 대한 세부 사항을 포함한다. 숫자 812290
을 알고있는 경우 change:812290
을 사용하여 gerrit query
의 commit:<commit-id>
을 바꿀 수 있습니다. 로컬 저장소에 이러한 심판을 가져 오기 :
git fetch origin refs/changes/90/812290/3
이 심판을 다운로드가 가리키는 된 후 당신이 자식이 당신이 원하는대로 그들을 조작 명령을 실행할 수 커밋.
git diff commit1 commit2
자세한 내용은 Gerrit의 문서에서 gerrit query
을 검색 할 수 있습니다.
짧은 대답은 불가능합니다. Atlassian's Git Tutorials에서
:
개정 커밋은 실제로 완전히 새로운 커밋하고 이전은 더 이상 현재의 지점에 없습니다 커밋합니다.
즉, 수정 된 커밋에 액세스 할 수 없습니다. 그들 interactive rebase를 사용하여 : (부수는 커밋 섹션)
대안으로, 별도의 커밋으로 모든 변경 사항을 적용 할 수 및 검토를 완료 할 때 squash은. 같은 변경-ID을, 모든 "개정"가정이
리트 당신이 선택할 수
같은 리트 - 변경에 커밋의 세트를 연결하는 방법입니다
(이 변화의 버전 당신 각-다른 비교하고 싶습니다.
디폴트의 동작은, 최신 하나에가 (먼저 세트에 커밋)를 자료를 비교하는 것입니다.
을로컬 (git-) 지점에서는 git reflog
명령을 사용하여
변경의 다른 버전을 볼 수도 있습니다.
(git reflog
는
을 빵 부스러기 같은 작업의 역사를 보여주고 당신도 show
및 cherry-pick
그 개정의 수) 모든 개정이 같은 Change-Id
있는 경우에, 어떤것 하나의 변화의 패치 세트