사용자 도구

사이트 도구


git:cheatsheet

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
git:cheatsheet [2023/05/15 16:43]
kwon37xi
git:cheatsheet [2024/02/06 09:18] (현재)
kwon37xi [Git Cheatsheet]
줄 3: 줄 3:
   * ''git clone [저장소주소] [디렉토리명]'' : "디렉토리명"으로 저장소 복제   * ''git clone [저장소주소] [디렉토리명]'' : "디렉토리명"으로 저장소 복제
   * ''git clone %%--%%depth 1 [저장소주소] [디렉토리명]'' : "디렉토리명"으로 저장소를 복제하는데, 히스토리는 복제하지 않는다(빠르다).   * ''git clone %%--%%depth 1 [저장소주소] [디렉토리명]'' : "디렉토리명"으로 저장소를 복제하는데, 히스토리는 복제하지 않는다(빠르다).
-  * ''git clone %%--%%branch <branchname> [저장소주소]'' : 특정 branch 를 클론한다.+  * ''git clone %%--%%branch <branchname/tagname> [저장소주소]'' : 특정 branch/tag 를 클론한다.
 ===== 설정 보기 ===== ===== 설정 보기 =====
 <code sh> <code sh>
줄 38: 줄 38:
   * ''git diff %%--%%name-status 브랜치1..브랜치2'' : 두 브랜치간의 변경된 파일 목록과 상태. ''%%--%%name-only'' 옵션은 파일 이름만 출력.   * ''git diff %%--%%name-status 브랜치1..브랜치2'' : 두 브랜치간의 변경된 파일 목록과 상태. ''%%--%%name-only'' 옵션은 파일 이름만 출력.
   * ''git diff %%--%%stat %%--%%color 브랜치1..브랜치2'' : 두 브랜치간의 차이를 컬러 차트로 보여줌.   * ''git diff %%--%%stat %%--%%color 브랜치1..브랜치2'' : 두 브랜치간의 차이를 컬러 차트로 보여줌.
-  * ''%%git log --graph --left-right --cherry-pick --oneline 브랜치1...브랜치2%%'' 
   * ''git diff %%--%%name-only [COMMIT1] [COMMIT2]'' : 두 커밋간의 변경된 파일 목록   * ''git diff %%--%%name-only [COMMIT1] [COMMIT2]'' : 두 커밋간의 변경된 파일 목록
   * ''git diff %%--%%name-only HEAD~10 HEAD~5'' : 헤드에서 10번째 커밋과 헤드에서 5번째 커밋간의 변경된 파일 목록   * ''git diff %%--%%name-only HEAD~10 HEAD~5'' : 헤드에서 10번째 커밋과 헤드에서 5번째 커밋간의 변경된 파일 목록
   * ''git diff %%--%%staged'' : 이미 commit 된 것과 staged 된 파일의 변경 비교   * ''git diff %%--%%staged'' : 이미 commit 된 것과 staged 된 파일의 변경 비교
   * ''git log branchA..branchB'' : 두 브랜치간의 commit 목록 diff.   * ''git log branchA..branchB'' : 두 브랜치간의 commit 목록 diff.
-    * ''git log %%--oneline --no-merges%% branchA..BranchB'' : 두 브랜치간의 commit 목록 diff 인데 머지 커밋은 제외+    * ''git log 더적은쪽브랜치..더큰브랜치'' : 두 브랜치가 포함관계일 때 더적은쪽을 왼쪽에 둬야했음. 
 +    * ''git log %%--oneline --no-merges --no-decorate%% branchA..BranchB'' : 두 브랜치간의 commit 목록 diff 인데 머지 커밋은 제외 
 +    * ''%%git log --graph --left-right --cherry-pick --oneline 브랜치1...브랜치2%%'' : 브랜치간 빠진 커밋 찾기 diff 와 같은듯. cherry-pick 으로 이 브랜치 저 브랜치 머지하다가 누락된곳 찾기?
     * [[https://stackoverflow.com/questions/13965391/how-do-i-see-the-commit-differences-between-branches-in-git|branch - How do I see the commit differences between branches in git? - Stack Overflow]]     * [[https://stackoverflow.com/questions/13965391/how-do-i-see-the-commit-differences-between-branches-in-git|branch - How do I see the commit differences between branches in git? - Stack Overflow]]
 +    * 차이나는 Jira 이슈 번호만 뽑기<code sh>
 +git log --oneline --no-merges --no-decorate 브랜치1..브랜치2 \
 +    | grep -o "[A-Z]\{6\}-[0-9]\{4\}" | sort | uniq
 +</code>
  
 +===== 파일 보기 view / show =====
 +  * ''git show [커밋ID]:/path/to/file'' : 특정 커밋에서의 파일의 내용을 보여줌
  
 ===== Log ===== ===== Log =====
줄 51: 줄 58:
     * ''git log -숫자'' : 최근 **숫자** 갯수만큼의 로그만 보여줌     * ''git log -숫자'' : 최근 **숫자** 갯수만큼의 로그만 보여줌
   * ''git log %%--%%full-history [파일]'' : 사라진 커밋 히스토리까지 다 보여준다.   * ''git log %%--%%full-history [파일]'' : 사라진 커밋 히스토리까지 다 보여준다.
-  * ''git log %%--%%author="Jon"'' : 특정 사용자로 커밋 로그 검색+  * ''%%git log --author="Jon"%%'' : 특정 사용자로 커밋 로그 검색
   * ''git log %%--%%grep="정규표현식"'' : 정규표현식을 만족하는 커밋 메시지가 있는 로그를 보여줌   * ''git log %%--%%grep="정규표현식"'' : 정규표현식을 만족하는 커밋 메시지가 있는 로그를 보여줌
     * ''%%--%%all-match'' : 모든 ''%%--%%grep'' 옵션을 다 만족시키는 것만 검색.     * ''%%--%%all-match'' : 모든 ''%%--%%grep'' 옵션을 다 만족시키는 것만 검색.
줄 195: 줄 202:
   * ''git checkout 이름'' : 예전 방식   * ''git checkout 이름'' : 예전 방식
     * local 브랜치가 존재할 경우에는 해당 브랜치를 체크아웃 한다.     * local 브랜치가 존재할 경우에는 해당 브랜치를 체크아웃 한다.
-    * local 브랜치가 존재하지 않고 remote 에 일치하는 이름의 브랜치가 딱 하나 존재하면 local 브랜치를 생성하고 remote 브랜치를 tracking 한다. 즉, ''git checkout -b <branch> --track <remote>/<branch>'' 명령이 자동 실행된다.(''--guess''옵션 기본적용)+    * local 브랜치가 존재하지 않고 remote 에 일치하는 이름의 브랜치가 딱 하나 존재하면 local 브랜치를 생성하고 remote 브랜치를 tracking 한다. 즉, ''git checkout -b <branch> %%--track%% <remote>/<branch>'' 명령이 자동 실행된다.(''%%--guess%%''옵션 기본적용)
   * ''git switch 이름'' : 해당 브랜치로 스위치. ''checkout''에서 브랜치 관련된 기능만 수행하는 버전.   * ''git switch 이름'' : 해당 브랜치로 스위치. ''checkout''에서 브랜치 관련된 기능만 수행하는 버전.
     * local 브랜치가 존재할 경우 해당 브랜치로 스위치     * local 브랜치가 존재할 경우 해당 브랜치로 스위치
-    * local 브랜치가 존재하지 않고 remote 에 일치하는 이름의 브랜치가 딱 하나 존재하면 local 브랜치를 생성하고 remote 브랜치를 tracking 한다. 즉, ''git switch -c <branch> --track <remote>/<branch>'' 로 작동한다.(''--guess''옵션 기본적용)+    * local 브랜치가 존재하지 않고 remote 에 일치하는 이름의 브랜치가 딱 하나 존재하면 local 브랜치를 생성하고 remote 브랜치를 tracking 한다. 즉, ''git switch -c <branch> %%--track%% <remote>/<branch>'' 로 작동한다.(''%%--%%guess''옵션 기본적용)
   * ''git switch -c 이름'' : 브랜치 생성하고 해당 브랜치로 스위치   * ''git switch -c 이름'' : 브랜치 생성하고 해당 브랜치로 스위치
     * ''git checkout -b 이름'' : 예전 방식     * ''git checkout -b 이름'' : 예전 방식
줄 208: 줄 215:
   * ''git branch -a'' : 전체 브랜치(리모트 포함) 목록   * ''git branch -a'' : 전체 브랜치(리모트 포함) 목록
   * ''git branch -r'' : 리모트 브랜치 목록   * ''git branch -r'' : 리모트 브랜치 목록
-  * ''git remote prune origin''원격서 삭제된 리포지토리를 로컬에서도 삭제.+  * ''git remote prune origin''정확한 의미 확인 필요. origin 에 브랜치가 없는데 local 에 연결이 있을 경우 이를 끊어주는 역할인듯. 실제로 local branch 를 삭제하는게 아님.
  
 ===== master to main 변경 ===== ===== master to main 변경 =====
git/cheatsheet.1684136623.txt.gz · 마지막으로 수정됨: 2023/05/15 16:43 저자 kwon37xi