git log
을 사용하여 특정 파일이 마스터로 가져온 시간을 찾으려고합니다. (간체) 버전 기록은 다음과 같습니다병합 커밋을 표시하는`git log-filename`을 얻는 방법
* f77cac3 Merge branch 'branch2'
|\
| * da35250 Merge branch 'branch1' into branch2
| |\
| | * 90ab3e3 adding foo on branch1
| * | 42a0367 adding bar in branch2
| |/
* | 853b691 changes to baz on master
* | c7b6c72 baz file on master
|/
* e195580 first commit
내가 (f77cac3해야한다) 마스터로 파일 'foo는'도입 커밋하는 찾을 싶습니다. 그러나 git log --foo
을 실행하면 90ab3e3이됩니다. 더 복잡한 경우, branch1과 branch2에서 foo 파일을 여러 번 변경하면 모든 커밋이 표시되지만 병합 커밋은 표시되지 않습니다. 구글 도움을 통해뿐만 아니라 봤 거든 스택 오버플로에 대한 검색,하지만이 일을 할 수있는 방법을 찾을 수 없습니다. 내가 정말이 시점에서 난처한 상황에 빠진
mkdir testgit
cd testgit
git init
vim README
git add README
git commit
git checkout -b branch1
vim foo
git add foo
git commit
git checkout master
git checkout -b branch2
vim bar
git add bar
git commit
git checkout master
vim baz
git add baz
git commit
vim baz
git add baz
git commit
git checkout branch2
git merge --no-ff branch1
git checkout master
git merge --no-ff branch2
, 어떤 포인터를 정말 감사하겠습니다 :
다음은 아래의 시나리오를 재현하는 데 사용할 수있는 명령입니다.
무엇이 이상한 지, 나는'git log --merges - foo'을 제안하려했으나 샘플 저장소에는 아무것도 표시하지 않았다. (나는 여기에 Git 1.7.10.4가있다.) – kostix