728x90
반응형
질문 : 커밋 메시지로 Git 저장소를 검색하는 방법은 무엇입니까?
커밋 메시지 "Build 0051"과 함께 일부 소스 코드를 GIT로 확인했습니다.
그러나 해당 소스 코드를 더 이상 찾을 수없는 것 같습니다. 명령 줄을 사용하여 GIT 저장소에서이 소스를 어떻게 추출합니까?
최신 정보
- SmartGIT를 사용하여 버전 0043, 0044, 0045 및 0046을 체크인했습니다.
- 0043을 체크아웃하고 다른 지점에서 0051까지 버전을 체크인했습니다.
- 0043을 다시 체크아웃했습니다
- 지금은 0051이 사라졌습니다.
최신 정보
소스 코드는 확실히 거기에 있습니다. 이제 그것을 확인하는 문제입니다.
C:\Source>git log -g --grep="0052"
commit 77b1f718d19e5cf46e2fab8405a9a0859c9c2889
Reflog: HEAD@{10} (unknown <Mike@.(none)>)
Reflog message: commit: 20110819 - 1724 - GL: Intermediate version. File version: v0.5.0 build 0052.
Author: unknown <Mike@.(none)>
Date: Fri Aug 19 17:24:51 2011 +0100
20110819 - 1724 - GL: Intermediate version. File version: v0.5.0 build 0052.
C:\Source>
답변
주어진 텍스트에 대한 커밋 로그 (모든 분기에 걸쳐)를 검색하려면 :
git log --all --grep='Build 0051'
저장소 기록을 통해 커밋의 실제 내용을 검색하려면 다음을 사용하십시오.
git grep 'Build 0051' $(git rev-list --all)
주어진 텍스트, 포함 파일 이름 및 커밋 sha1의 모든 인스턴스를 표시합니다.
마지막으로 커밋이 매달려 있고 히스토리에 전혀 연결되지 않은 경우 마지막 수단으로 -g
--walk-reflogs
약자)를 사용하여 reflog 자체를 검색 할 수 있습니다.
git log -g --grep='Build 0051'
편집 : 기록을 잃어버린 것 같으면 안전망으로 reflog
다음에 나열된 커밋 중 하나에서 빌드 0051을 찾습니다.
git reflog
단순히 'Build 0051'커밋이 보이지 않는 히스토리의 일부로 HEAD
git-ready reflog 기사가 도움이 될 수 있습니다.
reflog에서 커밋을 복구하려면 : 찾은 커밋의 git 체크 아웃을 수행하고 선택적으로 참조를 위해 새 분기 또는 태그를 만듭니다.
git checkout 77b1f718d19e5cf46e2fab8405a9a0859c9c2889
# alternative, using reflog (see git-ready link provided)
# git checkout HEAD@{10}
git checkout -b build_0051 # make a new branch with the build_0051 as the tip
출처 : https://stackoverflow.com/questions/7124914/how-to-search-a-git-repository-by-commit-message
728x90
반응형
'개발관련 > Git' 카테고리의 다른 글
.git 모든 폴더 및 하위 폴더의 모든 .DS_Store 파일을 무시할 때 해결 방법 (0) | 2021.09.28 |
---|---|
.gitignore 제외 폴더이지만 특정 하위 폴더 포함 (0) | 2021.09.27 |
Git 브랜치를 마스터로 병합하는 가장 좋은 (가장 안전한) 방법 (0) | 2021.09.17 |
다른 git 병합 전략 사용 시기 (0) | 2021.09.16 |
.gitconfig에서 여러 사용자를 지정하는 방법 (0) | 2021.09.16 |