로딩...

Git

분산저장관리 공식문서: [URL] https://git-scm.com/book/ko/v2

by-command

files

특정 커밋 내용 가져와서 적용

 git show [SHA] -- [FILE1] [FILE2] | git apply -
 git cherry-pink -n [SHA]

특정 커밋 내용 확인

git show [SHA]:[PATH]

특정 커밋 내용 비교

git diff [SHA0] [SHA1] [PATH]

깃에서 관리하는 파일인지 확인

git ls-files [FILE]

깃에서 무시하는 파일인지 확인

git check-ignore -v [FILE]
# list
git status --ignored [FILE]

rebase -i

git log branch/a branch/b
* (3시간 전) c003c2c
* (3시간 전) c338742
* (3시간 전) ab1a091
* (3시간 전) b44a769
* (3시간 전) 93c7114
* (3시간 전) 54d0235
* (3시간 전) 77c0b5b
* (3시간 전) e5143b1
* (3시간 전) 4c1a5db
* (3시간 전) a288ffb
* (3시간 전) b86b554
* (3시간 전) 75942cd
* (3시간 전) dece25b
* (3시간 전) 3e293e3
* (3시간 전) e21c75b
* (3시간 전) c79629d
| * (6시간 전) 20ad4e2
| * (7시간 전) 88fa156
| * (8시간 전) 063c591
| * (8시간 전) c8c7df7
| * (8시간 전) 282f7b9
| * (8시간 전) fae9472
| * (8시간 전) 4a0981a
| * (8시간 전) b500bf4
| * (9시간 전) 3edc586
| * (9시간 전) e7027c5
| * (9시간 전) 643d23a
| * (9시간 전) 4725f0f
| * (9시간 전) e32ed20
| * (9시간 전) db03f27
| * (9시간 전) 5b84a5f
| * (9시간 전) 1a3949f
| * (10시간 전) 365b2e1
| * (11시간 전) 62b965b
| * (11시간 전) 215e993
| * (11시간 전) 9ba8cba
| * (11시간 전) 3235509
|/
* (12시간 전) 93e9e47
* 
$ git log branch/a..branch/b
* (3시간 전) c003c2c
* (3시간 전) c338742
* (3시간 전) ab1a091
* (3시간 전) b44a769
* (3시간 전) 93c7114
* (3시간 전) 54d0235
* (3시간 전) 77c0b5b
* (3시간 전) e5143b1
* (3시간 전) 4c1a5db
* (3시간 전) a288ffb
* (3시간 전) b86b554
* (3시간 전) 75942cd
* (3시간 전) dece25b
* (3시간 전) 3e293e3
* (3시간 전) e21c75b
* (3시간 전) c79629d
$ git rebase -i \
 $(git merge-base master branch/air) # vimwiki [issue](issue) 로 2줄 작성

--ancestry-path

HEAD 가 아닌 중간으로 checkout 한 경우 HEAD(SHA_02) 까지 전진

$ git log --ancestry-path [SHA_01]..HEAD
$ git merge-base branch/a branch/b
93e9e47
$ git log --ancestry-path 93e9e47..branch/b
* (3시간 전) c003c2c
* (3시간 전) c338742
* (3시간 전) ab1a091
* (3시간 전) b44a769
* (3시간 전) 93c7114
* (3시간 전) 54d0235
* (3시간 전) 77c0b5b
* (3시간 전) e5143b1
* (3시간 전) 4c1a5db
* (3시간 전) a288ffb
* (3시간 전) b86b554
* (3시간 전) 75942cd
* (3시간 전) dece25b
* (3시간 전) 3e293e3
* (3시간 전) e21c75b
* (3시간 전) c79629d
$ git 

untracked 파일 지우기

git clean -fd
  • -f : 파일
  • -d : 디렉토리

url 변경하기

하드코딩된 url 때문에 다중 계정을 이용하는 경우 고통받을 수 있다. 다중 계정은 로컬에서key 파일을 통해서 인증 정보를 관리할 텐데 이런 경우 ssh 가 사용된다.

[.gitconfig-url](.gitconfig-url) 을 설정한다.

feature 브랜치 변경된 파일들 stage 화

reset 후

git switch feature
git reset --mixed $(git merge-base master @)

1. 변경된 파일 모두 버퍼로

vim $(git diff --name-only)

2. 상태값으로 필터

vim $(git status -s | grep "[^D] " | awk '{print $2}')

보기만

vim $(git diff --name-status master.. | rg "[^D]\t" | awk '{print $[2](2)}')

plumping 명령어

  • git rev-parse: 브랜치명이나 태그를 커밋 해시로 리턴한다.
  • git rev-list: git log 등의 레인지를 가지는 결과를 기반으로 커밋 해시만 뽑아낸다.
    • --abbrev-commit 옵션 가능

releated