๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–‹๏ธ Tools

[Git] ๋“œ๋ฆผ์ฝ”๋”ฉ-3. ๊ธฐ๋ณธ ๋ช…๋ น์–ด ์ •๋ณตํ•˜๊ธฐ

by OR15A 2023. 11. 23.

3. ๊ธฐ๋ณธ ๋ช…๋ น์–ด ์ •๋ณตํ•˜๊ธฐ

[ 3.1 + 3.2 ]

git์—๋Š” 3๊ฐ€์ง€ ์ž‘์—… ํ™˜๊ฒฝ์ด ๋‚˜๋ˆ„์–ด์ ธ ์žˆ๋‹ค

๐Ÿ’ป [ local ] : ๋‚˜์˜ PC
  • working directory : ์ž‘์—… ํŒŒ์ผ ์ˆ˜์ •
  • * untracked * tracked ( unmodified / modified )
  • staging area : ์–ด๋Š ์ •๋„ ์ž‘์—… ํ›„ ํŒŒ์ผ ์˜ฎ๊ฒจ๋†“๊ธฐ
  • .git directory : ๋ฒ„์ „ ๋ณ„ ํŒŒ์ผ ๋ณด๊ด€
https://www.notion.so/icons/upload_blue.svg [ remote ]
  • .git directory : ๋ฒ„์ „๋ณ„ ํŒŒ์ผ ๋ณด๊ด€(์„œ๋ฒ„)
  • ๊ฐ๊ฐ์˜ commit : ์Šค๋ƒ…์ƒท๋œ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” HashCode๊ฐ€ ์žˆ์Œ

 

  • ์‹ค์Šต ์œ„ํ•œ ํด๋” ๋งŒ๋“ค๊ธฐ
mkdir git/ch1
  • ํ…์ŠคํŠธํŒŒ์ผ 3๊ฐ€์ง€ ๋งŒ๋“ค๊ธฐ
echo hello world! > a.txt
echo hello world! > b.txt
echo hello world! > c.txt
  • addํ•ด์„œ git์—์„œ ์ถ”์ ํ•˜๊ธฐ

  • ํ˜„์žฌ statging area ์ƒํ™ฉ ์•Œ์•„๋ณด๊ธฐ
git status

  • ํŒŒ์ผ ์ˆ˜์ • ์‹œ git status์˜ ๋ณ€ํ™”
echo new word > a.txt

  • git rm —cached … ํ•˜๋ฉด unstage ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋„์›€๋ง์ด ์žˆ์Œ

  • git add . ์™€ git add *****์˜ ์ฐจ์ด์ 

GPT๋‹ต๋ณ€

git add . (์ ):
"git add ." ๋ช…๋ น์€ ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ๊ทธ ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“  ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง• ์˜์—ญ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.
ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ฐ ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” ๋ชจ๋“  ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์ด ์Šคํ…Œ์ด์ง• ์˜์—ญ์— ์ถ”๊ฐ€๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด์˜ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์Šคํ…Œ์ด์ง•ํ•˜๋ ค๋ฉด ์ฃผ๋กœ ์ด ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
์˜ˆ: git add .

git add * (๋ณ„ํ‘œ):
"git add *" ๋ช…๋ น์€ ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ๋งŒ ์Šคํ…Œ์ด์ง• ์˜์—ญ์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ธŒ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์€ ์Šคํ…Œ์ด์ง•๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ๋งŒ ์Šคํ…Œ์ด์ง•ํ•˜๋ฏ€๋กœ, ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด์—์„œ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ ์ค‘ ์ผ๋ถ€๋งŒ ์Šคํ…Œ์ด์ง•ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜ˆ: git add *

์ผ๋ฐ˜์ ์œผ๋กœ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์—๋Š” "git add ."๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์Šคํ…Œ์ด์ง•ํ•˜๋ฉฐ, ํ•„์š”์— ๋”ฐ๋ผ "git add *"์™€ ๊ฐ™์€ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ๋งŒ ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
"git add ." ๋ฐ "git add *"๋Š” ๋‘˜ ๋‹ค ๋ณ€๊ฒฝ๋œ ํŒŒ์ผ์„ ์Šคํ…Œ์ด์ง• ์˜์—ญ์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” Git ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋‘ ๋ช…๋ น์–ด ์‚ฌ์ด์—๋Š” ์•ฝ๊ฐ„์˜ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค:

 

 

[ 3.3 ]

  • ์ถ”์  ๋˜๋ฉด ์•ˆ๋˜๋Š” ํŒŒ์ผ์€ .gitignore๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ
๐Ÿ“–  .gitignore ํŒŒ์ผ์— ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํŒจํ„ด์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํŠน์ • ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋ฌด์‹œํ•˜๊ธฐ

#ํŠน์ • ํŒŒ์ผ ๋ฌด์‹œ
filename.txt

#ํŠน์ • ๋””๋ ‰ํ† ๋ฆฌ ๋ฌด์‹œ
directory/

#ํ™•์žฅ์ž .log์ธ ๋ชจ๋“  ํŒŒ์ผ ๋ฌด์‹œ
*.log
echo *.log > .gitignore

์ด๋ ‡๊ฒŒ ์ฃผ์„์„ ๋‹ฌ์•„์„œ ์ถ”์  ๋˜๋ฉด ์•ˆ๋˜๋Š” ํŒŒ์ผ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ

  • WindowPoweShell์—์„œ ์ ์šฉ ์‹œ utf-8๋กœ ๋ณ€๊ฒฝํ•ด์ค˜์•ผ ์ธ์‹ ๊ฐ€๋Šฅํ•จ.
$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'

$PSDefaultParameterValues['*:Encoding'] = 'utf8'

 

 

[ 3.4 ]

  • git status ๋ช…๋ น์–ด์˜ ๋‹ค์–‘ํ•œ ์˜ต์…˜. ๊ธฐ๋ณธ์ ์œผ๋กœ๋Š” --long์ ์šฉ

  • ํ„ฐ๋ฏธ๋„์ฐฝ clear๋‹จ์ถ•ํ‚ค
//mac
cmd k

//window
ctrl L
  • git status short ์˜ต์…˜ : ํ˜„์žฌ staging area ์ƒํƒœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ณผ ์ˆ˜ ์žˆ์Œ

 

 

[ 3.5 ]

  • ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ ๋‚ด์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ณด์—ฌ์คŒ
    (์Šคํ…Œ์ด์ง• ์˜์—ญ์— ์Šคํ…Œ์ด์ง•๋˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ์ด์ „ ์ปค๋ฐ‹๊ณผ์˜ ๋น„๊ต ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œ)
git diff   //๋ผ๊ณ ๋งŒ ์ ์œผ๋ฉด working directory์— ์žˆ๋Š” ๋‚ด์šฉ๋งŒ ์•Œ ์ˆ˜ ์žˆ์Œ
  • ์Šคํ…Œ์ด์ง• ์˜์—ญ์— ์žˆ๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ณด์—ฌ์คŒ
    (์Šคํ…Œ์ด์ง• ์˜์—ญ์— ์Šคํ…Œ์ด์ง•๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ์ด์ „ ์ปค๋ฐ‹๊ณผ์˜ ๋น„๊ต ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œ)
git diff --staged 
git diff --cached

[ 3.6 ]

  • staging area์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ git-repository์— ์˜ฎ๊ธฐ๊ธฐ = commit
git commit -m"๋ฉ”์„ธ์ง€"

//์ „๋ถ€๋‹ค addํ•˜๊ณ  ๊ฐ™์€ ๋ฉ”์„ธ์ง€์™€ ํ•จ๊ป˜ commit ํ•  ๊บผ์•ผ
git commit -am"๋ฉ”์„ธ์ง€"

  • git history ํ™•์ธํ•˜๊ธฐ
git log

 

 

[ 3.7 ]

  • ์ปค๋ฐ‹ ๋‹จ์œ„ : ๋ชจ๋“ˆ ํ•˜๋‚˜ ์™„์„ฑ, ํŽ˜์ด์ง€ ํ•˜๋‚˜ ์™„์„ฑ, ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„ ์ง€์ •ํ•˜๊ธฐ
  • → ํžˆ์Šคํ† ๋ฆฌ๋งŒ ๋ดค์„ ๋•Œ ๋ฐ”๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋„๋ก
  • commit message : ๋ณดํ†ต ํ˜„์žฌํ˜•, ๋™์‚ฌ ex) init add fix
  • fix 00 ๋ผ๋Š” ์ปค๋ฐ‹์˜ ๋‚ด์šฉ์—๋Š” ์ •๋ง ๊ณ ์นœ ๋‚ด์šฉ ํ•˜๋‚˜๋งŒ ๋“ค์–ด๊ฐ€์•ผ ํ•จ (๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ฝ”๋“œ๋ฆฌ๋ทฐ, ํžˆ์Šคํ† ๋ฆฌ๋ฅผ ๋Œ์•„๋ณผ ๋•Œ ํ—ท๊ฐˆ๋ฆผ)

[ 3.9 ]

  • c.txt ํŒŒ์ผ ์ˆ˜์ • ํ›„ ์‚ญ์ œํ•˜๋ ค๊ณ  ํ•จ
rm c.txt
// Changes not staged for commit:
// deleted:    c.txt    ๋ผ๊ณ  ๋œจ๋ฉด์„œ ์‚ญ์ œํ•˜๋Š” ํŒŒ์ผ์„ ์ˆ˜๋™์œผ๋กœ staging area์— ์˜ฌ๋ ค์ค˜์•ผํ•จ
git rm c.txt
// Changes to be committed:
// deleted:    b.txt    ๋ฐ”๋กœ ํŒŒ์ผ deleted๋กœ ์˜ฌ๋ผ๊ฐ
  • ํŒŒ์ผ์ด๋ฆ„ ๋ณ€๊ฒฝํ•˜๋ฉด git status์— ์ ์šฉ๋˜์ง€ ์•Š์Œ
mv  c.txt  newC.txt
//c๋Š” deleted, newC๋Š” untrctedํŒŒ์ผ๋กœ ์ถ”๊ฐ€๋จ
git  mv  c.txt  newC.txt
- - - - - - - - - - - - - - -
renamed: c.txt -> newC.txt

[ 3.10 ]

  • git commit์˜ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ ์ž์„ธํ•œ ๋‚ด์šฉ ๋ณด๊ธฐ
git log -p
git log --patch

-์ •ํ™•ํžˆ ์–ด๋–ค ํŒŒ์ผ์ด ์ˆ˜์ •๋˜๊ณ  ์–ด๋–ค ๋‚ด์šฉ์ด ์—…๋ฐ์ดํŠธ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ

-๋ณ€๊ฒฝ๋œ ํŒŒ์ผ ๋‚ด์šฉ์˜ ์ถ”๊ฐ€(+), ์ œ๊ฑฐ(-), ์ˆ˜์ • ๋ฐ ์ด๋™ ๋“ฑ์ด ์ž์„ธํžˆ ๋‚˜ํƒ€๋‚จ

  • git์˜ ๊ฐ commit์„ ํ•œ ์ค„๋กœ ๊ฐ„๋žตํ•˜๊ฒŒ ํ‘œ์‹œ
git log --oneline
  • commit log๋ฅผ ์˜ค๋ž˜๋œ ์ˆœ์„œ๋Œ€๋กœ ๋ณด๊ณ  ์‹ถ์„ ๋•Œ
git log --oneline --reverse
  • commit์„ ํ•ด๋‚˜๊ฐ€๋Š” ๊ธฐ๋ณธ ์ค„๊ธฐ = Master๋ธŒ๋žœ์น˜

  • ๋ฐฉ๊ธˆ ๋ง‰ commit์„ ํ–ˆ๋‹ค๋ฉด HEAD๋Š” d๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ณ  ์žˆ์Œ

  • HEAD~2 : ๋งˆ์ง€๋ง‰ commit์—์„œ 2๋ฒˆ์งธ commit

  • HEAD ์˜ฎ๊ธฐ๊ธฐ = commit ๋ฒ„์ „ ๋ณ€๊ฒฝํ•˜๊ธฐ
//๋ธŒ๋žœ์น˜ ๋ณ€๊ฒฝ (HEAD๋ฅผ ๋‹ค๋ฅธ ๋ธŒ๋žœ์น˜๋กœ ์ด๋™)
git checkout <branch_name>

//์ปค๋ฐ‹ ์ด๋™ (HEAD๋ฅผ ํŠน์ • ์ปค๋ฐ‹์œผ๋กœ ์ด๋™)
git checkout <commit_hash>

//์ƒ๋Œ€ ์ฐธ์กฐ (HEAD๋ฅผ ์ƒ๋Œ€์ ์œผ๋กœ ์ด๋™)
git checkout HEAD~<n>

//๋ธŒ๋žœ์น˜ ์ƒ์„ฑ ๋ฐ HEAD ์ด๋™ (๋ธŒ๋žœ์น˜ ์ƒ์„ฑ๊ณผ HEAD ์ด๋™์„ ๋™์‹œ์—)
git checkout -b <new_branch_name>

[ 3.11 ]

  • git log ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ๋•Œ ์ปค๋ฐ‹ ๋กœ๊ทธ์˜ ์ถœ๋ ฅ ํ˜•์‹์„ ์ง€์ •
//๊ฐ ์ปค๋ฐ‹์„ ํ•œ ์ค„๋กœ ์š”์•ฝํ•˜์—ฌ ํ‘œ์‹œ
git log --pretty=oneline

//์›ํ•˜๋Š” ํ˜•์‹์˜ ํฌ๋งท ๋ฌธ์ž์—ด์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋ฐ‹ ๋กœ๊ทธ๋ฅผ ์ถœ๋ ฅ
git log --pretty=format:"<ํฌ๋งท ๋ฌธ์ž์—ด>"

//๊ฐ ์ปค๋ฐ‹์— ๋Œ€ํ•œ ์ƒ์„ธ ์ •๋ณด๋ฅผ ํ‘œ์‹œ
git log --pretty=full

//full๊ณผ ์œ ์‚ฌํ•˜์ง€๋งŒ ์ถ”๊ฐ€ ์ •๋ณด(์˜ˆ: GPG ์„œ๋ช…)๋ฅผ ํฌํ•จ
git log --pretty=fuller

//--graph ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋ฐ‹ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ทธ๋ ค ํ‘œ์‹œ
git log --pretty=format:"%h %s" --graph
  • ์—˜๋ฆฌ ์ถ”์ฒœ ์–‘์‹
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
  • alias๋ฅผ ์ด์šฉํ•ด์„œ ์ €์žฅํ•ด๋‘๋ฉด ๊ฐ„ํŽธํ•จ
git config --global alias.histshortcut "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"
  • ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ๋‹จ์ถ•ํ‚ค์›Œ๋“œ ๋„ˆ๋ฌด ๊ธธ์–ด์„œ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์‹œ ์„ค์ •ํ•  ์˜ˆ์ • cmhist
git config --global --unset alias.histshortcut   //๋‹จ์ถ•ํ‚ค์›Œ๋“œ ์‚ญ์ œ

[ 3.12 ]

  • log ์‹ฌํ™”
//์ตœ๊ทผ log 3๊ฐœ๋งŒ
git log -3

//์ตœ๊ทผ log 3๊ฐœ, oneline์œผ๋กœ
git log --oneline -3

//ํŠน์ • ์ž‘์„ฑ์ž์˜ log๋งŒ
git log --authour="์ž‘์„ฑ์ž"

//ํŠน์ • ๋‚ ์งœ ์ด์ „์˜ log๋งŒ
git log ---before="2023-10-07"

//commit title์— ํ‚ค์›Œ๋“œ๊ฐ€ ํฌํ•จ๋œ commit๋งŒ ๋ณด๊ณ ์‹ถ์„ 
git log --grep="ํ‚ค์›Œ๋“œ"

//์†Œ์Šค ์ฝ”๋“œ ์•ˆ์—์„œ ํŠน์ • ๋ฌธ์ž์—ด์„ ๊ฒ€์ƒ‰ํ•˜๊ณ  ์‹ถ์„ ๋•Œ, ๊ทธ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๊ฐ€์ง„ log๋ฅผ ๋ณด๊ณ ์‹ถ์„ ๋•Œ
git log -S "์ฐพ๊ณ  ์‹ถ์€ ํ‚ค์›Œ๋“œ"
//๋” ์ž์„ธํžˆ ์•Œ๊ณ ์‹ถ๋‹ค๋ฉด patch์˜ ์•ฝ์ž์ธ p๋ฅผ ๋ถ™์ด๊ธฐ
got log -S "์ฐพ๋Š”๋‹จ์–ด" -p

//ํŠน์ • ํŒŒ์ผ์˜ ์ปค๋ฐ‹์„ ๋ณด๊ณ ์‹ถ์„ ๋•Œ
git log ํŒŒ์ผ์ด๋ฆ„.ํ™•์žฅ์ž
//๋” ์ž์„ธํžˆ ๋ณด๊ณ ์‹ถ๋‹ค๋ฉด
git log -p ํŒŒ์ผ์ด๋ฆ„.ํ™•์žฅ์ž
//๊ฐ„๋‹จํžˆ ์ƒํƒœ๋งŒ ํ™•์ธํ•œ๋‹ค๋ฉด
git log -s ํŒŒ์ผ์ด๋ฆ„.ํ™•์žฅ์ž

//HEAD์—์„œ๋ถ€ํ„ฐ 2๋ฒˆ์งธ log๊ฐ€ ๋ณด๊ณ ์‹ถ์„ ๋•Œ
git log HEAD~2

//ํŠน์ • commit ๋‚ด์šฉ๋งŒ ๋ณด๊ณ ์‹ถ์„ ๋•Œ 
git show HASHCODE์•ฝ6์ž๋ฆฌ
//ํŠน์ • commit ๋‚ด์šฉ ์ค‘ ํŠน์ • ํŒŒ์ผ๋งŒ ๋ณด๊ณ ์‹ถ์„ ๋•Œ
git show HASHCODE ํŒŒ์ผ์ด๋ฆ„.ํ™•์žฅ์ž

//2๊ฐ€์ง€์˜ HASH์ฝ”๋“œ๋ฅผ ์ด์šฉํ•ด์„œ git diff ํ™œ์šฉํ•˜๊ธฐ
git diff HASHCODE_1 HASHCODE_2

 

 

 

[ 3.14 ]

  • git tag == ํŠน์ •ํ•œ commit์— ๋ถ๋งˆํฌํ•˜๋Š”๊ฒƒ. ๋ณดํ†ต ๋ฆด๋ฆฌ์ฆˆ ๋ฒ„์ „์„ ์ด์šฉํ•จ.

-์˜๋ฏธ์žˆ๊ณ  ์ผ๊ด€์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ

 

 

 

[ 3.15 ]

  • ํƒœ๊ทธ ์ถ”๊ฐ€
git tag ํƒœ๊ทธํ‚ค์›Œ๋“œ
  • ํŠน์ • commit์— ํƒœ๊ทธ ์ถ”๊ฐ€ํ•  ๋•Œ
git tag ํƒœ๊ทธํ‚ค์›Œ๋“œ HASHCODE
  • ํƒœ๊ทธ์— ๋ถ€๊ฐ€์ ์ธ ์ •๋ณด๋ฅผ ๋„ฃ๊ณ  ์‹ถ์„ ๋•Œ(-a), ์ด ๋ฉ”์„ธ์ง€๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฒ ๋‹ค(-m)
git tag ํƒœ๊ทธํ‚ค์›Œ๋“œ HASHCODE -am "release note"
  • ๋งŒ๋“ค์–ด์ง„ ๋ชจ๋“  ํƒœ๊ทธ ํ™•์ธํ•˜๊ธฐ
git tag
  • ํŠน์ • ๋ฌธ์ž ํƒœ๊ทธ ํ™•์ธํ•˜๊ธฐ
git tag -l "์™€์ผ๋“œ์นด๋“œ*"
  • ํƒœ๊ทธ ์‚ญ์ œํ•˜๊ธฐ
git tag -d ํƒœ๊ทธํ‚ค์›Œ๋“œ
  • ํŠน์ • ํƒœ๊ทธ๋กœ ์ด๋™ํ•˜๊ธฐ
git checkout ํƒœ๊ทธํ‚ค์›Œ๋“œ
  • ๋งŒ๋“  ํƒœ๊ทธ๋ฅผ ์„œ๋ฒ„์— ์—…๋กœ๋“œ ํ•  ๋•Œ (์ผ๋ถ€ ๋™๊ธฐํ™”)
git push origin ํƒœ๊ทธํ‚ค์›Œ๋“œ
  • ๋ชจ๋“  ํƒœ๊ทธ๋ฅผ ์„œ๋ฒ„์— ์—…๋กœ๋“œ ํ•  ๋•Œ
git push origin --tags
  • ํŠน์ • ํƒœ๊ทธ๋งŒ ์‚ญ์ œ
git push origin --delete ํƒœ๊ทธ๋ฒ„์ „