programing

git log에서 지점 이름을 표시하려면 어떻게 해야 합니까?

subpage 2023. 7. 18. 21:44
반응형

git log에서 지점 이름을 표시하려면 어떻게 해야 합니까?

의 출력에 분기 이름을 표시하려면 어떻게 해야 합니까?git log?

예를 들어,git log --graph --all커밋의 개요는 잘 알 수 있지만, 예를 들어 어떤 줄이 마스터이고 어떤 줄이 내 브랜치인지 헷갈립니다.

장식 옵션을 사용해 보십시오.

git log --graph --all --decorate

태그 또는 분기별로 가리키는 커밋에 주석을 달 수 있습니다.

저는 이것과 비슷한 것을 찾고 있었습니다. 하지만 어떤 지점에서 변경이 이루어졌는지 알고 싶었습니다.이 대답이 다른 사람들에게도 도움이 되기를 바랍니다.

위험을 조사하는 중입니다blackbox암호화(repo 및 해당 분기/서버를 현재 사용할 수 없게 될 수 있음)admins충분한 사용자가 프로젝트를 떠날 때 그리고.keyrings디렉터리가 종교적으로 마스터를 기반으로 하지 않음)

나는 아래의 대답이 도움이 된다는 것을 발견했습니다.keyrings디렉터리가 마스터에서 업데이트되지 않았습니다...

기본적으로 추가합니다.--source내가 나뭇가지/태그를 보여줘야 하는 것이었습니다.추가 중--name-only실제로 변경된 파일도 표시됩니다.

cd /path/to/repo-that-uses-blackbox-encryption
git log --graph --all --decorate --source --name-only keyrings

또 다른 유용한 답변:분기 이름으로 Git 로그를 표시하는 방법

만약 당신이 단말기로 oh-my-zsh를 사용하고 있다면, 많은 Git 별칭을 사용할 수 있습니다.이 모든 것은 그들의 평판에서 볼 수 있습니다.-my-zsh/plugins/git.이 터미널을 사용하지 않는 경우에는 별칭을 가져와 원하는 별칭을 사용자 환경에 붙여넣으면 됩니다.

승인된 답변은 다음을 제시합니다.git log --graph --all --decorate명령, 이 명령을 사용할 수 있습니다.glgga오마이-즈시의 별칭입니다.

개인적으로 나는 그것을 선호합니다.glods다음을 의미하는 별칭:

git log --graph --pretty='%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%ad) %C(bold blue)<%an>%Creset' --date=short

이전 게시물이지만 게시된 답변에는 실제로 각 커밋의 분기 이름이 표시되지 않습니다. 가장 최근 커밋에 대한 분기 이름만 표시됩니다.모든 커밋의 지점 이름을 나열하려면git show-branch지휘권예:

$ git show-branch --all --more
! [Branch_Feature_1] Commit Msg: Feature_1, Commit #1
 ! [Branch_Feature_2] Commit Msg: Feature_2, Commit #2
  ! [Branch_Feature_3] Commit Msg: Feature_3, Commit #1
   * [master] Merge branch 'Branch_Feature_3' Commit Msg: Merge Master Commit #2 + Feature_3
----
   - [master] Merge branch 'Branch_Feature_3' Commit Msg: Merge Master Commit #2 + Feature_3
  +* [Branch_Feature_3] Commit Msg: Feature_3, Commit #1
   * [master^] Commit Msg: Master, Commit #2
 ++* [Branch_Feature_2] Commit Msg: Feature_2, Commit #2
 ++* [Branch_Feature_2^] Commit Msg: Feature_2, Commit #1
+++* [Branch_Feature_1] Commit Msg: Feature_1, Commit #1
+++* [Branch_Feature_1^] Master_Commit_Msg: Original file

각 도구에 표시되는 내용을 명확히 하기 위해 "Branch_" 접두사로 모든 분기의 이름을 지정하고 모든 커밋 메시지에 "CommitMsg" 레이블을 지정했습니다.

이 예에서는 마스터 및 Branch_Feature_1 ~ Branch_Feature_3의 4개 분기가 있습니다.Branch_Feature_1에는 커밋이 1개 있고 Branch_Feature_2에는 커밋이 2개 있습니다.둘 다 빨리 감기 병합을 통해 병합되었습니다.Feature_3에는 하나의 커밋이 있으며 Feature_3 분기 후 마스터에 대한 커밋이 있었기 때문에 비FF 병합을 통해 병합되었습니다.

"----" 위의 선은 각 분기에 대한 최근 커밋과 마스터, 즉 모든 분기의 끝을 나타냅니다.마스터 앞에 접두사 "*"가 붙어 있으면 마스터가 현재 활성 분기임을 나타냅니다.다른 모든 분기의 "!" 접두사는 활성 분기가 아님을 나타냅니다.

"----" 아래의 선은 각 분기에 대한 모든 커밋을 나타냅니다.prefix는 병합을 나타냅니다."+" 및 "*" 접두사는 "----" 위에 표시되는 분기에 어떤 커밋이 있는지를 나타냅니다.열이 정렬되는 방식을 확인합니다."*" vs "+"는 다시 활성 분기와 그렇지 않은 분기를 보여줍니다.

을 이값의 출비니다합의 해 보세요.git log동일한 리포지토리의 경우:

git log --oneline --graph --all --parents
*   2d142e7 fd4f402 9eb9513 (master) Merge branch 'Branch_Feature_3' Commit Msg: Merge Master Commit #2 + Feature_3
|\
| * 9eb9513 c9bb4db (HEAD -> Branch_Feature_3) Commit Msg: Feature_3, Commit #1
* | fd4f402 c9bb4db Commit Msg: Master, Commit #2
|/
* c9bb4db a470d38 (Branch_Feature_2) Commit Msg: Feature_2, Commit #2
* a470d38 f3fde4d Commit Msg: Feature_2, Commit #1
* f3fde4d 81753a3 (Branch_Feature_1) Commit Msg: Feature_1, Commit #1
* 81753a3 Master_Commit_Msg: Original file

방법에목의 방법에 하십시오.git log각 분기에 대한 현재 HEAD의 커밋에 대한 분기 이름만 표시합니다.트리 기호는 어떤 분기에 어떤 커밋이 있는지 나타내기 위해 있지만, 나는 다음을 발견합니다.git show-branch관계를 훨씬 더 잘 보여주는 출력.

대신 되는 것을 에는 SHA-1 값을 하십시오.--sha1-name:

! [Branch_Feature_1] Commit Msg: Feature_1, Commit #1
 ! [Branch_Feature_2] Commit Msg: Feature_2, Commit #2
  * [Branch_Feature_3] Commit Msg: Feature_3, Commit #1
   ! [master] Merge branch 'Branch_Feature_3' Commit Msg: Merge Master Commit #2 + Feature_3
----
   - [2d142e7] Merge branch 'Branch_Feature_3' Commit Msg: Merge Master Commit #2 + Feature_3
  *+ [9eb9513] Commit Msg: Feature_3, Commit #1
   + [fd4f402] Commit Msg: Master, Commit #2
 +*+ [c9bb4db] Commit Msg: Feature_2, Commit #2
 +*+ [a470d38] Commit Msg: Feature_2, Commit #1
++*+ [f3fde4d] Commit Msg: Feature_1, Commit #1

다음과 같은 작업을 수행할 수 있습니다.

git log --decorate --oneline --pretty='%h refs: %d message:%s'

모든 커밋에 분기 또는 태그에 대한 참조가 있는 것은 아닙니다.그러기 위해서는 더 복잡한 "플럼핑" 접근 방식이 필요합니다.

언급URL : https://stackoverflow.com/questions/1841405/how-can-i-show-the-name-of-branches-in-git-log

반응형