원격 저장소에서 기록 커밋


206

원격 저장소에서 지점의 커밋 기록에 액세스하려고합니다. 나는 문서를 보았지만 로컬 git 클라이언트를 사용하여 원격 저장소의 커밋 기록에 액세스하는 방법에 대한 실질적인 정보를 찾을 수 없었습니다.

답변:


252
git log remotename/branchname

해당 리포지토리에 지정된 원격 분기의 로그를 표시하지만 리포지토리에서 원격 리포지토리의 개인 "복사"로 "가져온"로그 만 표시합니다.

리포지토리 복제본은 다음을 수행하여 원격 지점의 상태 만 업데이트합니다 git fetch. 서버에 직접 연결하여 로그를 확인할 수는 없습니다. 서버의 상태를 다운로드 git fetch한 다음 원격 지점의 로그를 로컬에서 확인하십시오.

또 다른 유용한 명령은 다음과 같습니다.

git log HEAD..remote/branch

원격 브랜치에는 있지만 현재 브랜치에는없는 커밋을 표시합니다 ( HEAD).


8
"로그를 확인하기 위해 서버에 직접 연결할 수 없습니다"– 이것이 내가 겪고 있었던 문제
Brian J

1
로컬 변경 사항 만 가져옵니다 ... 원격 변경 사항을 확인하고 심지어 가져 오기를 수행하십시오.
Loenix

6
을 수행 할 때 git fetch당신은 사용할 필요가 --all리모트에서 가져올 수 있습니다.
ocodo

25
너무 나빠서 커밋 로그를 살펴보기 위해 2GB 상당의 객체를 복제해야합니까?
TWiStErRob

2
안녕 @TWiStErRob 당신은 얕은 클론으로 가져온 데이터의 양을 관리하여 고통을 완화 할 수 있습니다 ( git-scm.com/docs/git-clone 에서 --depth 참조 ) 후 인출을 관리하십시오 ( git-scm 에서 "얕은"참조) .com / docs / git-fetch ).
qneill

66

NB. 아래의 "origin"은 복제 된 저장소의 업스트림을 나타내는 데 사용합니다. "origin"을 원격 저장소의 설명 이름으로 바꾸십시오. "원격 참조"는 clone 명령에 사용 된 것과 동일한 형식을 사용할 수 있습니다.

git remote add origin <remote reference>
git fetch
git log origin/master

2
@ user1795998 원격 저장소 Git URL (예 :git://git.somedomain.tld/some/repo
gertvdijk)

1
리모컨의 분기를 추적하지 않는 경우 <refspec>가져 오기 (또는 사용 fetch --all) 를 지정할 필요가 없습니까?
gertvdijk

1
"프로젝트 공급 업체 / 진단"이란 무엇입니까? 저장소 내의 폴더입니까? 다른 지점?
LopSae

1
저장소에는 여러 개의 브랜치가있을 수 있지만 "프로젝트"는 git와 관련된 용어가 아니며,이 경우 "프로젝트"의 의미와 혼동됩니다. 그래도 그 질문과 어떤 관련이 있습니까?
LopSae

1
나는 GIT에서 이것을 할 수 있다고 믿지 않습니다. 원격 저장소를 복제하기 전에 원격 저장소를 복제해야합니다.
user959690

12

로컬 리포지토리의 로그 만 볼 수 있지만 설정 한 모든 원격의 페치 된 분기가 포함될 수 있습니다.

따라서 저장소를 복제하면 ...

git clone git@gitserver:folder/repo.git

기본값은 origin/master입니다.

originlet 's add 이외 의 다른 리포지토리에 리모컨을 추가 할 수 있습니다 production. 로컬 클론 폴더 내에서 :

git remote add production git@production-server:folder/repo.git

로그를보고 싶다면 production다음을 수행해야합니다.

git fetch --all 

이것은 모든 원격에서 가져옵니다 (기본 가져 --all오기는에서 만 가져옵니다 origin)

가져온 후에는 production원격 에서 로그 를 볼 수 있으므로 분기도 지정해야합니다.

git log production/master

모든 옵션은 로컬 지점에 로그온 할 때와 같이 작동합니다.


12

이를 수행하는 가장 빠른 방법은 --bare키워드를 사용하여 복제 한 다음 로그를 확인하는 것입니다.

git clone --bare git@giturl tmpdir
cd tmpdir
git log branch

11

나는 이것이 가능하다고 생각하지 않습니다. 나는 원격 저장소를 로컬로 복제하고 실행 git fetch하기 전에 수행해야한다고 생각 git log합니다.


1
이미 리포지토리를 로컬로 복제하고 약간 변경했다고 상상해보십시오. . 그렇다면 원격
리포지토리에

2
이 답변을 "불가능"으로 변경하면 이것이 가장 좋은 답변입니다. 원격 자식 클라이언트를 사용하여 원격 저장소의 커밋 기록에 액세스 할 수있는 방법이 없습니다.
qneill


2

필터링이 언제 추가되었는지 확실하지 않지만 기록 / 참조 로그 만 가져 오려는 경우 오브젝트 블로 브를 제외하는 방법입니다.

git clone --filter=blob:none --no-checkout --single-branch --branch master git://some.repo.git .
git log

이것은 완벽하다 . 다른 답변이 주어지면 제공된 답변 옆에 눈에 띄는 것이 좋을 것입니다.
에릭 Cousineau

0

원격 서버의 로그를 쉽게 얻을 수 있습니다. 방법은 다음과 같습니다.

(1) ssh를 통해 git을 사용하는 경우 git login 및 password를 사용하여 원격 서버에 로그인하고 리포지토리가있는 원격 폴더를 chdir하고 원격 서버의 리포지토리 내에서 "git log"명령을 실행하십시오.

(2) Unix의 표준 로그인 프로토콜을 통해 git을 사용하는 경우 원격 서버에 텔넷으로 연결하고 git log를 수행하십시오.

도움이 되었기를 바랍니다.


13
"원격 서버의 로그를 얻을 수
없다면

그냥이 답변을 삭제, 그것은 질문에 대답하지 않고 가장 자식 사용자가 서버 쉘 액세스하지 않아도되지 방법
nhed

0

다음은 원격에서 로그를 쉽게 볼 수있는 bash 기능입니다. 두 개의 선택적 인수가 필요합니다. 첫 번째는 브랜치 이며 기본적으로 master 입니다. 두 번째는 리모컨 이며 기본 설정은 스테이징 입니다.

git_log_remote() {
  branch=${1:-master}
  remote=${2:-staging}

  git checkout $remote/$branch
  git fetch
  git log
  git checkout -
}

예 :

 $ git_log_remote
 $ git_log_remote development origin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.