๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

github

3-2. ๊ธฐ๋ณธ ๋ช…๋ น์–ด

* ์†Œ์ŠคํŠธ๋ฆฌ๋กœ ์ปค๋ฐ‹ํ•˜๊ธฐ

https://academy.dream-coding.com/courses/take/git/lessons/17954796-3-8

 

์•„์ง์€ ์†Œ์ŠคํŠธ๋ฆฌ๋ฅผ ์“ฐ์ง€ ์•Š์•„์„œ,,, ์ผ๋‹จ์€ ํŒจ์Šค

 

 

* ํŒŒ์ผ ๋ณ€๊ฒฝ ์‹œ ์œ ์šฉํŒ

- ํŒŒ์ผ ์‚ญ์ œ

  rm ์„ ์ด์šฉํ•ด ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋ฉด, c.txt๋Š” staging area์— ํฌํ•จ์ด ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ commit ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” c.txt๋ฅผ git add -> commit ํ•˜๊ฑฐ๋‚˜ git commit -a ๋กœ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

  ํ•˜์ง€๋งŒ git์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ช…๋ น์–ด๋กœ ๊ฐ„ํŽธํ•˜๊ฒŒ staging area์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.  

 

 

 

 

  git์—์„œ ์ œ๊ณตํ•˜๋Š” rm์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž๋™์œผ๋กœ Staging area์— ํฌํ•จ์ด ๋˜์–ด์žˆ๋‹ค.

 

git rm ํŒŒ์ผ

 

 

- ํŒŒ์ผ ์ด๋ฆ„ ๋ณ€๊ฒฝ

 

  ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํŒŒ์ผ์˜ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•  ๋•Œ๋„ ๊ทธ๋ƒฅ mv ํŒŒ์ผ ํŒŒ์ผ ์ด๋Ÿฐ์‹์œผ๋กœ ์“ฐ๋ฉด git status์— ํฌํ•จ์ด ๋˜์ง€ ์•Š์€ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

c.txt๋Š” ์ง€์›Œ์ง€๊ณ , d.txt(←b.txt)๋Š” untracked ์ƒํƒœ์ด๋‹ค.

๋ฒŒ์จ ๋จธ๋ฆฌ๊ฐ€ ์•„ํŒŒ์ง€์ง€๋งŒ ์ด๋Ÿด ๋• git์—์„œ ์ œ๊ณตํ•˜๋Š” mv๋ฅผ ์ด์šฉํ•˜๋ฉด ๋œ๋‹ค.

 

 

์—˜๋ฆฌ๋‹˜๊ณผ ๊ฒฐ๊ณผ๊ฐ€ ๋‹ค๋ฅด๋„ค... ์šด์˜์ฒด์ œ๊ฐ€ ๋‹ฌ๋ผ์„œ ๊ทธ๋Ÿฐ๊ฐ€ ...ใ…  

 

 

* log : ๋ฒ„์ „๋“ค ๋ชฉ๋ก ๋ณด๊ธฐ

 

์•ž ๋‚ด์šฉ์„ ๋ณต์Šตํ•˜์ž๋ฉด

git init์€ ์ดˆ๊ธฐํ™”, git log๋Š” ๋กœ๊ทธ ๋ณด๊ธฐ,

 

์ฒ˜์Œ์— ๋‹ค์šด๋ฐ›์œผ๋ผ๊ณ  ํ•˜์…จ๋˜ ํŒŒ์ผ์ด ์žˆ๋Š”๋ฐ ์ด ์ค‘ git-log ํด๋”๋Š” ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉํ•œ๋‹ค.

ํ™•์ธํ•ด๋ณด๋ฉด ์ด์ „์— ํ•˜์‹  log๋“ค์ด ์ซ™ ๋ณด์ธ๋‹ค.

 

 ๋งจ ์•„๋ž˜์— ์žˆ๋Š” ๋กœ๊ทธ์ผ ์ˆ˜๋ก ์˜ˆ์ „ ๋กœ๊ทธ๋“ค์ด๋‹ค.

 

 

๊ทธ๋ฆฌ๊ณ  git log --patch๋‚˜ ๊ฐ„๋‹จํ•˜๊ฒŒ git log -p๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ˆ˜์ •๋œ ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. (git diff๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ)

git log --oneline์€ ๊น”๋”ํ•˜๊ฒŒ ๋กœ๊ทธ์˜ ํ•ด์‰ฌ์ฝ”๋“œ์˜ ์•ž์ž๋ฆฌ ๋ฌธ์ž์—ด๊ณผ commit ๋ฉ”์‹œ์ง€๋งŒ ์ถœ๋ ฅํ•ด์ค€๋‹ค. 

 

์™ผ์ชฝ(git log -p)์€ ๋„ˆ๋ฌด ๊ธธ์–ด์„œ ์ƒ๋žต, ์˜ค๋ฅธ์ชฝ(git log --oneline)์€ ๋„ˆ๋ฌด ์งง์•„์„œ ๊ฐ€๋กœ๋กœ ๊ธฐ๋‹ˆ๊นŒ ๊ณต๊ฐ„์„ ๋‹ค ์ฐจ์ง€ํ•˜๋Š”... 

 

๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์„œ HEAD -> master ์ด ๋ญ”์†Œ๋ฆฐ๊ฐ€...

 

 

  ์ด ๊ทธ๋ฆผ์—์„œ์˜ a ํŒŒ์ผ์€ ๊ฐ€์žฅ ๋จผ์ € ๋งŒ๋“ค์–ด์ง„ ํŒŒ์ผ์ด๋‹ค. a๋ฅผ commitํ•œ ํ›„ b๋ฅผ commitํ•˜๋ฉด b๋Š” ๋ฐ”๋กœ ์ด์ „์˜ commit์„ ์ฐธ๊ณ ํ•˜๋Š”๋ฐ, ์ด ๋•Œ b์˜ commit์ด a๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค. ๋‹ค์Œ c๋ฅผ commitํ•˜๋ฉด c๋„ ๋ฐ”๋กœ ์ด์ „ commit์ธ b๋ฅผ ์ฐธ์กฐํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  d๋ฅผ ๋ฐฉ๊ธˆ ๋ง‰ commitํ–ˆ์„ ๋•Œ head๋Š” d๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋œ๋‹ค. head๋Š” ํ˜„์žฌ ๋‚ด๊ฐ€ ๋ฐ”๋ผ๋ณด๋Š” ์ด ์‹œ์ ์˜ ๋ฒ„์ „(commit)์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. head์—์„œ ~1์„ ๋ถ™์ด๋ฉด ํ—ค๋“œ์˜ ์ด์ „ ๋ฒ„์ „(๋ถ€๋ชจ)์„, head์— ~2๋ฅผ ๋ถ™์ด๋ฉด ์ด์ „ ์ด์ „ ๋ฒ„์ „์„ (์กฐ๋ถ€๋ชจ?) ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ๋œ๋‹ค. master์€ ๊ฐ€์žฅ ์ตœ๊ทผ ๋ฒ„์ „์„ ๋งํ•œ๋‹ค. 

  git์˜ ์žฅ์ ์€ ์Šค๋ƒ…์ƒท์œผ๋กœ ํ•ด๋‹น ๋ฒ„์ „๋“ค์„ ์ €์žฅํ•ด ๋น„๊ต์  ๊ฐ€๋ณ๊ณ  ์ด์ „ ๋ฒ„์ „์œผ๋กœ ์–ธ์ œ๋“ ์ง€ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์—ˆ๋‹ค๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ, ์˜ˆ๋ฅผ ๋“ค์–ด commit b๋กœ ๋Œ์•„๊ฐ€๊ณ  ์‹ถ๋‹ค๋ฉด git checkout b ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด head๋Š” ์ด์ œ b๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค

  ์œ„์˜ ๊ทธ๋ฆผ์—์„œ๋Š” ์ดํ•ด๋ฅผ ์œ„ํ•ด ๊ทธ๋ƒฅ b๋กœ ์นญํ–ˆ์œผ๋‚˜, ์‹ค์ œ๋กœ๋Š” ์ด์™€ ๊ฐ™์ด ์ž‘์„ฑํ•œ๋‹ค.

git checkout ํ•ด์‰ฌ์ฝ”๋“œ

 

 

๊ณผ๊ฑฐ ์—ฌํ–‰ ํ•˜๋Š” ๊ธฐ๋ถ„ ,,,

 

๊ทธ๋ ‡๋‹ค๋ฉด ๋‹ค์‹œ ๋งจ ์ฒ˜์Œ master branch๋กœ ๊ฐ€๊ธฐ ์œ„ํ•ด์„œ๋Š” ์–ด๋–ป๊ฒŒ ํ• ๊นŒ?

 

 

์œ„ ์บก์ณ์™€ ๊ฐ™์ด git checkout master ์„ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค. 

- ์ฐธ๊ณ ๋กœ log๋ฅผ ๋ณผ ๋•Œ ์˜ค๋ž˜๋œ ์ˆœ์œผ๋กœ ๋ณด๊ณ ์‹ถ๋‹ค๋ฉด --reverse ์˜ต์…˜์„ ๋’ค์— ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค. 

 

 

* ๋กœ๊ทธ ์˜ˆ์˜๊ฒŒ ๋งŒ๋“ค๊ธฐ

๋กœ๊พธํ•˜๋Š” ๋ฐฉ๋ฒ•์€ git log ๋‹ค์Œ์— --pretty ์˜ต์…˜์„ ๋ถ™์ด๋ฉด ๋œ๋‹ค. 

์•„๊นŒ ์‚ฌ์šฉํ•ด๋ณธ --oneline ์˜ต์…˜์„ pretty์— ์ ์šฉํ•˜๋ ค๋ฉด git log --pretty=oneline ์˜ ์‹์œผ๋กœ '='๋ฅผ ์ด์šฉํ•ด ์ž‘์„ฑํ•œ๋‹ค.

 

--pretty ์—†๋Š” ๊ทธ๋ƒฅ --oneline / -pretty=oneline

 

๊ทธ๋ƒฅ oneline๊ณผ ๋‹ฌ๋ฆฌ ํ•ด์‰ฌ์ฝ”๋“œ๊ฐ€ ์ „๋ถ€ ๋‚˜์™€์žˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์‚ฌ์šฉ์ž ์ง€์ • ๋กœ๊พธ๋Š” ์–ด๋–ป๊ฒŒ ํ• ๊นŒ? 

 

C:\Users\82107\Documents\Study\dreamcoding-git\projects\git-log\git-log(master)
λ git log --pretty=format:"%h %an"
d643a6e Ellie
b8e485f Ellie
bd7bd28 Ellie
328708d Ellie
0ad2dbb Ellie
9186a41 Ellie
1563681 Ellie

C:\Users\82107\Documents\Study\dreamcoding-git\projects\git-log\git-log(master)
λ git log --pretty=format:"%h %an %ar %s"
d643a6e Ellie 1 year, 4 months ago Update Welcome page
b8e485f Ellie 1 year, 4 months ago Add light theme
bd7bd28 Ellie 1 year, 4 months ago Add About page
328708d Ellie 1 year, 4 months ago Add Welcome page
0ad2dbb Ellie 1 year, 4 months ago Add UserRepository module
9186a41 Ellie 1 year, 4 months ago Add LoginService module
1563681 Ellie 1 year, 4 months ago Initialise project

 

h๋Š” hashcode, an์€ anthor, ar์€ ..  commit๋œ ๋‚ ์งœ, s๋Š” ํƒ€์ดํ‹€์ด๋‹ค.

๊ทธ ์™ธ ๋‚˜๋จธ์ง€๋Š” ๋‹ค๋ฅธ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…์—์„œ ๊ธ์–ด..์™”๋‹ค.

 

์˜ต์…˜
์„ค๋ช…
%H
์ปค๋ฐ‹ ํ•ด์‹œ
%h
๋‹จ์ถ• ์ปค๋ฐ‹ ํ•ด์‹œ
%T
ํŠธ๋ฆฌ ํ•ด์‹œ
%t
๋‹จ์ถ• ํŠธ๋ฆฌ ํ•ด์‹œ
%P
๋ถ€๋ชจ ํ•ด์‹œ
%p
๋‹จ์ถ• ๋ถ€๋ชจ ํ•ด์‹œ
%an
์ €์ž ์ด๋ฆ„
%ae
์ €์ž ๋ฉ”์ผ
%ad
์ €์ž ์‹œ๊ฐ„(-date ์˜ต์…˜)
%ar
์ €์ž ์ƒ๋Œ€ ์‹œ๊ฐ„(ex: 5 days ago)
%cn
committer ์ด๋ฆ„(์ปค๋ฐ‹ํ•œ ์‚ฌ๋žŒ)
%ce
committer ๋ฉ”์ผ(์ปค๋ฐ‹ํ•œ ์‚ฌ๋žŒ)
%cd
committer ์‹œ๊ฐ„
%cr
committer ์ƒ๋Œ€ ์‹œ๊ฐ„(ex: 5 days ago)
%s
์š”์•ฝ

 

์ด ์ฝ”๋“œ↓๋Š” ์—˜๋ฆฌ๋‹˜์ด ์• ์šฉํ•˜๋Š” ํฌ๋งท์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ทผ๋ฐ ๋‚œ ํ„ฐ๋ฏธ๋„์ด๋ผ ์•ˆ๋˜๋Š”๋“ฏ..... ใ…  ๊ณ„์† %C๋Š” ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ทธ๋Ÿฐ ์• ๋“ค์ด ์•„๋‹ˆ๋ผ๋Š”๋ฐ ์—ฌ๊ธฐ์„œ c๋Š” color๋ฅผ ์˜๋ฏธํ•˜๊ฒ ์ง€? ์•”๋งŒ ๊ฒ€์ƒ‰ํ•ด๋„ ํŒŒ์›Œ์‰˜์—์„œ๋Š” ์•ˆ๋ณด์ด๋Š”๊ฑธ ๋ณด๋ฉด

๊ทธ๋ƒฅ ํŒŒ์›Œ์‰˜ ์œ ์ €๊ฐ€ ์ฃ„๋‹ค... ๊ฑฐ์ง€๊ฐ™์ด ๋ณด๊ณ ๋‹ค๋…€์•ผ๊ฒ ๋‹ค... 

 

git log --graph --all --pretty=format:'%C(yellow)[%ad]%C(reset) %C(green)[%h]%C(reset) | %C(white)%s %C(bold red){{%an}}%C(reset) %C(blue)%d%C(reset)' --date=short

 

↓์ƒ‰๊น” ์—†์ด ํŒŒ์›Œ์‰˜์—์„œ ๋ณด๊ธฐ... 

 

git log --graph --all --pretty=format:"%h %ad %s %an %d" --date=short

 

 

๊ทธ๋ฆฌ๊ณ  ์ด๋ ‡๊ฒŒ ์ •๋ฆฌ๋œ log ํฌ๋งท์„ ๋งจ๋‚  ๋ณต๋ถ™ํ•ด์„œ ์ž…๋ ฅํ•  ์ˆ˜๋Š” ์—†์œผ๋‹ˆ alias๋ฅผ ์„ค์ •ํ–ˆ๋‹ค.

bash์—์„œ๋Š” git config --global alias.hist 'git log --graph --all --pretty=format:"%h %ad %s %an %d" --date=short' ํ•˜๋ฉด ๋˜๋Š” ๊ฒƒ ๊ฐ™๋˜๋ฐ (์‚ฌ์‹ค ๋”ฐ์˜ดํ‘œ์— ๋”ฐ๋ผ ๋˜๋˜๋ฐ ์•ˆ๋˜๊ณ  ์•ˆ๋˜๋˜๊ฒŒ ๋˜๊ธธ๋ž˜ ์ด๊ฒƒ๋„ ๋งž๋‚˜์‹ถ๋‹ค...)

window์—์„œ๋Š” ์ผ๋‹จ .gitconfig ํŒŒ์ผ์„ ์—ด์–ด๋“œ๋ ค์•ผ ํ•œ๋‹ค. 

 

git config --global -e

 

๊ทธ๋ฆฌ๊ณ  ์—ด๋ฆฐ ํŒŒ์ผ์—์„œ [alias]์— ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณต๋ถ™ํ•ด ๋„ฃ์œผ๋ฉด ๋˜๋Š”๋ฐ, --pretty=format: ๋‹ค์Œ์— ์˜ฌ ๋‚ด์šฉ์„ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์œผ๋ฉด 

 

fatal: ambiguous argument '%ad': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]'

 

์ด๋”ด๊ฒŒ ๋œจ๋Š”๋ฐ ์•„๋ฌดํŠผ ์•ˆ๋œ๋‹ค๊ณ  ํ•œ๋‹ค. ์„ค๋งˆ์‹ถ์–ด์„œ ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์œผ๋‹ˆ๊นŒ ๋˜๋”๋ผ... 

 

hist = log --graph --all --pretty=format:'%h %ad %s %an %d' --date=short

 

์ž˜ ๋˜๋Š” ๋ชจ์Šต...

 

 

  ๊ทธ๋ฆฌ๊ณ  ๋‹ค์šดํ•˜๋ผ๊ณ  ํ•˜์‹  ํ”„๋กœ์ ํŠธ ๋‚ด์— fix๋ผ๋Š” branch๊ฐ€ ์žˆ๋Š”๋ฐ, ์ด๋Š” git checkout fix๋กœ ์ด๋™์ด ๊ฐ€๋Šฅํ•˜๋‹ค. (master branch๋กœ ์ด๋™ํ•˜๊ณ  ์‹ถ์œผ๋ฉด git checkout master)

  ๊ทผ๋ฐ ๋ง‰์ƒ fix branch๋กœ ์™€๋ณด๋‹ˆ head๋Š” fix๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ๋Š”๋ฐ, ์–ด๋””๋ถ€ํ„ฐ ์–ด๋””๊นŒ์ง€์˜ commit์ด fix์ธ์ง€ ๋ชจ๋ฅธ๋‹ค. (์šฐ์ธก ์บก์ณ๋Š” ... ๋„ˆ๋ฌด ๊ธธ์–ด์„œ ์ž˜๋ผ๋ƒˆ๋‹ค.)

 

 

 

 

  ์ด๋Š” git log --oneline --graph --all ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. (--oneline์€ ์—†์–ด๋„ ์ƒ๊ด€์—†์œผ๋‚˜ ๊น”๋”ํ•œ ํ™•์ธ์„ ์œ„ํ•ด)

--all ์˜ต์…˜์€ ๊ทธ๋ž˜ํ”„์™€ master branch๋ฅผ ๋ชจ๋‘ ํ•ฉํ•ด์„œ ์ „์ฒด์ ์ธ ๋‚ด์šฉ์„ ๋ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋„ฃ๋Š” ์˜ต์…˜์ด๋‹ค.

์œ„ ์บก์ณ๋Š” master branch๊ฐ€ ์ญ‰ ์ด์–ด์˜ค๋‹ค๊ฐ€ fix๋ผ๋Š” branch๋กœ ๋‚˜๋‰˜์–ด์ ธ์„œ commit์ด ํ•˜๋‚˜ ๋งŒ๋“ค์–ด์กŒ๊ณ , ๊ทธ ์ดํ›„ master branch์— commit์ด ํ•˜๋‚˜ ๋” ์—…๋ฐ์ดํŠธ๋จ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

* ๋กœ๊ทธ ์‹ฌํ™” ๋‚ด์šฉ

- ์ฐธ๊ณ ๋กœ ๋„์–ด์“ฐ๊ธฐ๋Š” ํ•  ๋•Œ๋งŒ ๊ผญ ํ•˜๋„๋ก ์ฃผ์˜ํ•˜์ž. ์•ˆ๊ทธ๋Ÿฌ๋ฉด ์• ๋งคํ•œ ํ‘œํ˜„์ด๋ผ๊ณ  ๋ญ๋ผํ•œ๋‹ค.

  • git log -3 : commit ์ค‘ ์ตœ์‹ ์ˆœ 3๊ฐœ๋งŒ ์ถœ๋ ฅ
  • git log --author="ellie" : commitํ•œ ์‚ฌ๋žŒ์ด ellie์ธ ๊ฒƒ๋งŒ ์ถœ๋ ฅ
  • git log --before="2020-09-08" : 2020๋…„ 9์›” 8์ผ ์ด์ „ commit๋งŒ ์ถœ๋ ฅ
  • git log --grep="project" : commit ํƒ€์ดํ‹€ ์ค‘์— project๊ฐ€ ํฌํ•จ๋œ commit๋งŒ ์ถœ๋ ฅ
  • git log -S "about" -p : ์•„์˜ˆ ์†Œ์Šค์ฝ”๋“œ ๋‚ด์šฉ ์•ˆ์—์„œ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‹ถ์€ ๋ฌธ์ž(about)๊ฐ€ ํฌํ•จ๋œ commit์˜ ์ƒ์„ธ ๋‚ด์šฉ ์ถœ๋ ฅ
  • git log -p about.txt : about ํŒŒ์ผ(์ด๊ฒŒ ํŒŒ์ผ๋ช…์ž„)์— ํ•ด๋‹นํ•˜๋Š” comit์˜ ์ž์„ธํ•œ ๋‚ด์šฉ ์ถœ๋ ฅ
    • -p๊ฐ€ ์•„๋‹ˆ๋ผ -s ๋ฉด ๊ฐ„๋‹จํ•œ ๋‚ด์šฉ์„ ์ถœ๋ ฅํ•œ๋‹ค.
  • git log HEAD~1 : head์˜ ๋ฐ”๋กœ ์•ž์— ์žˆ๋Š” ๋ถ€๋ชจ๋ถ€ํ„ฐ ๋ณด์—ฌ์คŒ
    • ~2๋ฉด ๋‘๋ฒˆ์งธ ๋–จ์–ด์ง„ ๋ถ€๋ชจ๋ถ€ํ„ฐ ๋ณด์—ฌ์คŒ
  • git show ํ•ด์‰ฌ์ฝ”๋“œ - ํ•ด๋‹น ํ•ด์‰ฌ์ฝ”๋“œ์˜ commit ๋‚ด์šฉ์„ ์ •ํ™•ํ•˜๊ฒŒ ํ™•์ธ ๊ฐ€๋Šฅ 
    • git show ํ•ด์‰ฌ์ฝ”๋“œ:ํŒŒ์ผ๋ช… - commit๋‚ด ํŠน์ • ํŒŒ์ผ์˜ ๋‚ด์šฉ๋งŒ ํ™•์ธ ๊ฐ€๋Šฅ

 

 

  • git diff ํ•ด์‰ฌ์ฝ”๋“œ1 ํ•ด์‰ฌ์ฝ”๋“œ2 : ๋‘ ๊ฐ€์ง€ commit์„ ๋น„๊ตํ•˜๊ธฐ
    • ์ด ๋•Œ ํ•ด์‰ฌ์ฝ”๋“œ1, ํ•ด์‰ฌ์ฝ”๋“œ2๋Š” ์œ„ ์บก์ณ์ฒ˜๋Ÿผ ๋ฌด์กฐ๊ฑด 6์ž๋ฆฌ๋กœ ๋ณต์‚ฌํ•  ํ•„์š”๋Š” ์—†๊ณ  ๋Œ€์ถฉ ์ € ์ •๋„๋งŒ ๋ณต๋ถ™ํ•ด๋„ ๋œ๋‹ค. (๊ทธ๋ž˜๋„ ๋„ˆ๋ฌด ์งง์œผ๋ฉด ์•ˆ๋œ๋‹ค..)
    • ํ•ด์‰ฌ์ฝ”๋“œ๋“ค ๋’ค์— ํŠน์ • ํŒŒ์ผ์„ ๋ถ™์—ฌ๋„ฃ์œผ๋ฉด ํŠน์ • ํŒŒ์ผ์˜ commit๊ฐ„ ์ฐจ์ด์ ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

* tag์˜ ํ•„์š”์„ฑ

 

  git์˜ commit๋“ค์˜ log๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ํŠน์ • ๋ถ€๋ถ„์œผ๋กœ์˜ ํšŒ๊ท€๊ฐ€ ํž˜๋“ค๋‹ค. ์ด๋ฅผ ๋Œ€๋น„ํ•ด ํŠน์ • commit์„ ๋ถ๋งˆํฌํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์“ฐ๋Š” ๊ฒƒ์ด git tag์ด๋‹ค. 

  ์›ํ•˜๋Š” ๋ถ€๋ถ„์œผ๋กœ ๋น ๋ฅด๊ฒŒ ์ „ํ™˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์›ํ•˜๋Š” ๋ฌธ์ž์—ด๋กœ tag๋ฅผ ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„ ์˜ค๋ฅธ์ชฝ ์บก์ณ์ฒ˜๋Ÿผ ๋ฒ„์ „ ๋ณ„๋กœ ๊ทธ ์ด๋ฆ„์„ tag ํ•ด๋‘”๋‹ค. ์ด๋ ‡๊ฒŒ tag๋ฅผ ๋งŒ๋“ค๋ฉด ๊ธด ๋ฒ„์ „ ํžˆ์Šคํ† ๋ฆฌ์˜ ํŠน์ • ๋ถ€๋ถ„์— tag ํ•จ์œผ๋กœ์จ ๊ด€๋ฆฌ๋ฅผ ํŽธํ•˜๊ฒŒ ํ•ด์ค€๋‹ค. 

 

๋ฒ„์ „ ๋ณ„๋กœ ํƒœ๊ทธ๋ฅผ ๋งŒ๋“ค ๋•Œ๋Š” ๋ณดํ†ต semantic versioning ์‹œ์Šคํ…œ์„ ๋”ฐ๋ผ๊ฐ„๋‹ค. ์ด ์ค‘์—์„œ ๋งจ ์•ž์— ์žˆ๋Š” major ๋ฒˆํ˜ธ๋Š” ์–ด๋–ค ํŠน์ •ํ•œ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์„ ๋•Œ, ์ „์ฒด์ ์ธ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์˜ฌ๋ผ๊ฐ„๋‹ค.

minor ๋ฒˆํ˜ธ๋Š” ์กฐ๊ธˆ์˜ ๊ธฐ๋Šฅ์ด ์—…๋ฐ์ดํŠธ ๋˜๊ฑฐ๋‚˜ ๊ฐœ์„ ์ด ๋˜์—ˆ์„ ๋•Œ ์—…๋ฐ์ดํŠธ ์‹œํ‚ค๊ณ , ๋งˆ์ง€๋ง‰์œผ๋กœ fix๋Š” ๊ธฐ์กด์— ์กด์žฌํ•˜๋Š” ๊ธฐ๋Šฅ ์ค‘ ์˜ค๋ฅ˜ ์ˆ˜์ •์„ ํ•ด์„œ ์„ฑ๋Šฅ์„ ์ข‹๊ฒŒ ๊ฐœ์„ ํ–ˆ์„ ๋•Œ ์—…๋ฐ์ดํŠธ ํ•œ๋‹ค. 

 

 

- git tag

  • git tag ํƒœ๊ทธ๋ช… : master branch์— tag ์ƒ์„ฑํ•˜๊ธฐ
  • git tag ํƒœ๊ทธ๋ช… ํ•ด์‰ฌ์ฝ”๋“œ : ํŠน์ • commit์— tag ์ƒ์„ฑํ•˜๊ธฐ 
  • git tag ํƒœ๊ทธ๋ช… ํ•ด์‰ฌ์ฝ”๋“œ -am "๋‚ด์šฉ" : ํŠน์ • tag์˜ ์ƒ์„ธ ๋‚ด์šฉ๊นŒ์ง€ ๋ถ™์—ฌ์ฃผ๊ธฐ, a๋Š” annotate์˜ ์•ฝ์ž๋กœ ์ฃผ์„์„ ๋‹ฌ๋‹ค, ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ•˜๋‹ค๋ผ๋Š” ๋œป. m์€ message๋ฅผ ์˜๋ฏธ
  • git show ํƒœ๊ทธ๋ช… : ํŠน์ • ํƒœ๊ทธ์˜ ์ƒ์„ธ ๋‚ด์šฉ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด ๋•Œ -am์œผ๋กœ ๋งŒ๋“ค์–ด์ค€ ์ฃผ์„์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ
  • git tag : ํ•ด๋‹น repository์— ์žˆ๋Š” ๋ชจ๋“  tag ํ™•์ธ ๊ฐ€๋Šฅ

  • git tag -l "๋‚ด์šฉ" : ํƒœ๊ทธ ์ค‘ ํŠน์ •ํ•œ ๋ฌธ์ž์—ด์ด ๋“ค์–ด ์žˆ๋Š” ๊ฒƒ๋งŒ ํ™•์ธํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ 
    • λ git tag -l "v1.0.*" # ์˜ˆ์‹œ
      v1.0.0
      v1.0.1
    • ๋ฒ„์ „ 1.0์ด ํฌํ•จ๋œ ํƒœ๊ทธ๋งŒ ๋ณผ ์ˆ˜ ์žˆ์Œ
  • git tag -d ํƒœ๊ทธ๋ช… : ํƒœ๊ทธ ์‚ญ์ œ
  • git checkout ํƒœ๊ทธ๋ช… : ํ•ด๋‹น ํƒœ๊ทธ์˜ commit์œผ๋กœ ์ด๋™
  • tig : ๋กœ๊ทธ๋ฅผ ๊ฐ„๋‹จํžˆ ๋ณด์—ฌ์ฃผ๋Š” ๋ช…๋ น์–ด

 

์•„๋ž˜ ์บก์ณ์—์„œ git checkout v2.0.0์„ ์ž…๋ ฅํ•˜๊ณ  tig์œผ๋กœ ํ™•์ธํ–ˆ์„ ๋•Œ, [HEAD] branch๊ฐ€ v2.0.0๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์Œ์„ ํ™•์ธ

 

q๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. (๊ทผ๋ฐ ์™œ ์œ„์—์„œ ๋‘๋ฒˆ์งธ ์ปค๋ฐ‹์€ 2๊ฐ€ ์ฒซ์งธ์ค„์—...)

 

  • git checkout -b branch๋ช… ํƒœ๊ทธ๋ช… : tag๋„ checkoutํ•˜๊ณ  ์ƒˆ๋กœ์šด branch๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ๋•Œ -b๋Š” branch๋ฅผ ์˜๋ฏธ

 

  • git push origin ํƒœ๊ทธ๋ช… : ํŠน์ • ํƒœ๊ทธ๋ฅผ ์„œ๋ฒ„์™€ sink ํ•จ
  • git push origin --tags : ๋ชจ๋“  ํƒœ๊ทธ๋ฅผ ์„œ๋ฒ„์™€ sink ํ•จ
  • git push origin --delete ํƒœ๊ทธ๋ช… : ํŠน์ • tag๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์‚ฌ์šฉ

 

 

 

 

 

'github' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๊นƒ ์„ค์น˜ ๋ฐ ๊ธฐ๋ณธ์„ค์ •  (0) 2025.04.01
3-1. ๊ธฐ๋ณธ ๋ช…๋ น์–ด  (0) 2022.02.15
2. ์…‹์—…ํ•˜๊ธฐ  (0) 2022.02.14
1-2 ๋ฆฌ๋ˆ…์Šค ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด  (0) 2022.02.12
1-1. Git  (0) 2022.02.07