git - deptno/deptno.github.io GitHub Wiki
Git
λΆμ°μ μ₯κ΄λ¦¬ 곡μλ¬Έμ: https://git-scm.com/book/ko/v2
by-command
- git-apply
- git-branch
- git-commit
- git-check-ignore
- git-checkout
- git-cherry-pick
- git-clean
- git-clone
- git-config
- git-diff
- git-difftool
- git-fetch
- git-grep
- git-log
- git-pull
- git-rebase
- git-reset
- git-merge-base
- git-restore
- git-show
- git-sparse-checkout
- git-stash
- git-status
- git-subtree
- git-submodule
- git-tag
- git-bisect
- git-credential-manager
files
νΉμ μ»€λ° λ΄μ© κ°μ Έμμ μ μ©
git show [SHA] -- [FILE1] [FILE2] | git apply -
git cherry-pink -n [SHA]
νΉμ μ»€λ° λ΄μ© νμΈ
git show [SHA]:[PATH]
νΉμ μ»€λ° λ΄μ© λΉκ΅
git diff [SHA0] [SHA1] [PATH]
κ²μ
https://stackoverflow.com/questions/2928584/how-to-grep-search-committed-code-in-the-git-history
git grep [REGEXP]
μ»€λ° λ©μμ§ κ²μ
git log --grep=[REGEXP]
$ git log --grep=aaaaaaaaa
commit bbbbbbbbb (origin/feature/aaa)
Author: b
Date: xx
Revert "hello world"
This reverts commit aaaaaaaaa
commit aaaaaaaaa (fix/a)
Author: a
Date: yy
hello world
μ»€λ° SHAλ‘ κ²μμ νκ² λλ©΄ μ μμ μΈ λ¦¬λ²νΈ 컀λ°μ΄ μλ κ²½μ° ν¨κ» κ²μλλ€.
μ½λ κ²μ
git grep -pPn [REGEXP]
options
-P
: perl compatible regular expression-n
: λΌμΈλλ²λ₯Ό ν¬ν¨νμ¬ μΆλ ₯-p
: ν¨μ μ΄λ¦μ ν¬ν¨-F
: fixed string ννλ‘ κ²μνλ€. regexp κ° μλ겨μ°
κΉμμ κ΄λ¦¬νλ νμΌμΈμ§ νμΈ
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](/deptno/deptno.github.io/wiki/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](/deptno/deptno.github.io/wiki/.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](/deptno/deptno.github.io/wiki/2)}')
plumping λͺ λ Ήμ΄
git rev-parse
: λΈλμΉλͺ μ΄λ νκ·Έλ₯Ό μ»€λ° ν΄μλ‘ λ¦¬ν΄νλ€.git rev-list
: git log λ±μ λ μΈμ§λ₯Ό κ°μ§λ κ²°κ³Όλ₯Ό κΈ°λ°μΌλ‘ μ»€λ° ν΄μλ§ λ½μλΈλ€.--abbrev-commit
μ΅μ κ°λ₯