Post

๐Ÿงฉ Git, GitHub

Git ๊ณผ Github์— ๋Œ€ํ•˜์—ฌ ์ •๋ฆฌํ•œ๋‹ค.

๐Ÿงฉ Git, GitHub

Gitโ“

  • git์€ ํŒŒ์ผ์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.
  • commitํ•œ ์‹œ์ ์˜ ํŒŒ์ผ๋“ค์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•ด๋†“๋Š”๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. (branch๋ฅผ ์˜ฎ๊ฒผ์„ ๋•Œ์—๋„ ๋งˆ์ฐฌ๊ฐ€์ง€)

Git, GitHub โ“

  • ์ •๋ง ๊ฐ„๋‹จํ•˜๊ฒŒ github์€ ์ €์žฅ์†Œ์ด๊ณ , git์€ local version ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค !
  • git์—์„œ ๋งˆ์Œ๊ป version ๊ด€๋ฆฌ๋ฅผ ํ•ด๋†“์€ commit๋“ค์„ pushํ•ด์„œ github์— ์ €์žฅํ•œ๋‹ค.

Stage โ“

  • commit์‹œํ‚ค๊ธฐ ์ „ ํŒŒ์ผ๋“ค์—๊ฒŒ ๋งˆ์Œ์˜ ์ค€๋น„๋ฅผ ์‹œ์ผœ์ฃผ๋Š” ์žฅ์†Œ์ž„.. ๐Ÿ™
  • Stage์— ์˜ฌ๋ผ๊ฐ„ ํŒŒ์ผ๋“ค์€ commit๋Œ€๊ธฐ์ค‘์ธ ํŒŒ์ผ๋“ค์ธ ๊ฒƒ.



โŒจ๏ธ ๋ช…๋ น์–ด

๐Ÿ›  git ์„ค์ •, ์ดˆ๊ธฐํ™”

1
2
3
# git version ํ™•์ธ !

git --version
1
2
3
# ๐ŸŒฑ git ์ €์žฅ์†Œ ์ดˆ๊ธฐํ™”. ์ดˆ๊ธฐํ™” ํ•˜๋ฉด [ .git ] ์ด๋ผ๋Š” ํด๋”๊ฐ€ ์ƒ๊ธฐ๋ฉฐ version๊ด€๋ฆฌ ์‹œ์ž‘๊ฐ€๋Šฅ !

git init
1
2
3
4
# ๐ŸŒ git ๊ธ€๋กœ๋ฒŒ ์„ค์ • ๋ชฉ๋ก ์กฐํšŒ
# ๐Ÿ“ --global ์˜ต์…˜์„ ๋นผ๊ณ  ์ž…๋ ฅํ•˜๊ฒŒ๋˜๋ฉด Repository๋‹จ์œ„๋กœ ์„ค์ •ํ•˜๋Š”๊ฒƒ ์ž…๋‹ˆ๋‹ค. 

git config --global --list
1
2
3
# ๊ธ€๋กœ๋ฒŒ ์‚ฌ์šฉ์ž ์„ค์ •

git config --global user.name "User name"
1
2
3
# ๊ธ€๋กœ๋ฒŒ ์ด๋ฉ”์ผ ์„ค์ •

git config --global user.email "git@gmail.com"
1
2
3
# ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜๋ฅผ main์œผ๋กœ ์„ค์ •

git config --global init.defaultBranch main



๐Ÿง‘๐Ÿปโ€๐Ÿ’ป ํŒŒ์ผ ์ƒํƒœ ๋‹ค๋ฃจ๊ธฐ, ์ƒํƒœ ํ™•์ธํ•˜๊ธฐ

1
2
3
# ๐Ÿ‘€ ํ˜„์žฌ ์ƒํƒœ ํ™•์ธ commitํ•  ํŒŒ์ผ์ด ์žˆ๋Š”์ง€ addํ•  ํŒŒ์ผ์ด ์žˆ๋Š”์ง€

git status
1
2
3
4
# ๐Ÿ‘† ์ „์ฒด ํŒŒ์ผ stage์— ์˜ฌ๋ฆฌ๊ธฐ dot, --all option ๋Œ€์‹ ์— ํŒŒ์ผ๋ช…์„ ์“ฐ๋ฉด ํ•ด๋‹น ํŒŒ์ผ๋งŒ ์˜ฌ๋ผ๊ฐ
git add .

git add --all
1
2
# ๐Ÿ‘‡ ์ „์ฒด ํŒŒ์ผ unstage. ์Šคํ…Œ์ด์ง€์—์„œ ๋‚ด๋ฆฌ๊ธฐ. dot ๋Œ€์‹ ์— ํŠน์ • ํŒŒ์ผ๋งŒ ๋‚ด๋ฆด์ˆ˜๋„ ์žˆ์Œ.
git reset HEAD .
1
2
3
# ๐Ÿ“ธ stage์— ์˜ฌ๋ผ๊ฐ„ ํŒŒ์ผ,๋””๋ ‰ํ† ๋ฆฌ commitํ•˜๊ธฐ. ํ˜„์žฌ ์ƒํƒœ๋ฅผ ์ €์žฅํ•œ๋‹ค. (ํ˜„์žฌ ์‹œ์ ์„ ์‚ฌ์ง„ ์ฐ๋Š”๊ฒƒ๊ณผ ๊ฐ™์€ ๋А๋‚Œ.)

git commit -m "commit message"
1
2
# ๐Ÿ“ commit ๋ฉ”์„ธ์ง€ ์ˆ˜์ •ํ•˜๊ธฐ
git commit --amend -m "๋ฉ”์„ธ์ง€ ์ˆ˜์ •ํ•˜๊ธฐ" 
1
2
# ๐Ÿ“ commit ์ž‘์„ฑ์ž ์ˆ˜์ •ํ•˜๊ธฐ
git commit --amend --author="bright-flare <orolsyeo@gmail.com>"
1
2
3
# ๐Ÿ‘€ commit log ํ™•์ธํ•˜๊ธฐ

git log
1
2
3
4
5
# git log ๋ฅผ ํ†ตํ•ด commit hash code๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ํ•ด๋‹น ๐Ÿ“ธ ์‹œ์ ์œผ๋กœ ๋Œ์•„๊ฐ€๊ธฐ.
# hash code๋งŒ ์žˆ์œผ๋ฉด ์•ž, ๋’ค๋กœ ์›ํ•˜๋Š” ์‹œ์ ์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์Œ.
# --hard option ๋ง๊ณ  ๋‹ค๋ฅธ option๋“ค๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

git reset --hard 91f61e82b0175d49c4fceda57d8b9133432f124f
1
2
# stage์— ์˜ฌ๋ฆฌ์ง€ ์•Š์€ ํŒŒ์ผ ์ค‘, ๋ณ€๊ฒฝ์‚ฌํ•ญ ํŠน์ • ํŒŒ์ผ์˜ ๋˜๋Œ๋ฆฌ๊ธฐ
git checkout -- test.java



โ˜๏ธ ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ์—ฐ๊ฒฐํ•˜๊ธฐ

1
2
3
4
# ๐Ÿ“ ์—ฌ๊ธฐ์„œ origin์€ ์›๊ฒฉ repository์˜ ๋ณ„์นญ์ด๋‹ค.
# ๐Ÿš€ local git๊ณผ ์›๊ฒฉ ์ €์žฅ์†Œ(GitHub)์˜ repository์™€ ์—ฐ๊ฒฐํ•œ๋‹ค.
 
git remote add origin https://github.com/github-user/github-repository.git
1
2
3
# ๐Ÿ’Ž github-user์˜ github-repository ์ €์žฅ์†Œ ๋ณต์ œํ•˜๊ธฐ

git clone https://github.com/github-user/github-repository.git
1
2
3
# ๐Ÿ‘€ ํ˜„์žฌ local ์ €์žฅ์†Œ์™€ ์—ฐ๊ฒฐ๋œ ์›๊ฒฉ ์ €์žฅ์†Œ url ํ™•์ธ

git remote -v
1
2
3
# ๐Ÿ‘€ ์›๊ฒฉ ์ €์žฅ์†Œ ์ฃผ์†Œ ๋ณ€๊ฒฝํ•˜๊ธฐ.

git remote set-url origin https://github-user@github.com/github-user/github-repository.git



๐Ÿš€ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์˜ฌ๋ฆฌ๊ธฐ

1
2
3
# commitํ•œ ๋‚ด์šฉ๋“ค์„ ์›๊ฒฉ ์ €์žฅ์†Œ main branch์— ๋ฐ€์–ด๋„ฃ๊ธฐ.

git push origin main
1
2
3
# ์›๊ฒฉ ์ €์žฅ์†Œ main branch์˜ ์ฝ”๋“œ๋“ค์„ local repository์— ๋™๊ธฐํ™”ํ•œ๋‹ค. 

git pull origin main



๐ŸŒฑ Branch

1
2
3
4
5
# ๐ŸŒฑ branch ์ƒ์„ฑํ•˜๊ธฐ
# ํ˜„์žฌ ์ปค๋ฐ‹ ์ƒํƒœ๋ถ€ํ„ฐ branch๊ฐ€ ์ƒ์„ฑ๋˜๋ฉฐ ์ƒ์„ฑ ์ดํ›„๋กœ๋Š” ํ•˜๋‚˜์˜ ํฐ ์ค„๊ธฐ์—์„œ ๋ป—์–ด๋‚˜๊ฐ€๋Š” ๊ฐ€์ง€์ฒ˜๋Ÿผ ๊ฐˆ๋ผ์ง„๋‹ค.
# ๊ฐˆ๋ผ์ง„ ๊ฐ€์ง€๋“ค, branch๋“ค์€ ๊ฐ์ž์˜ ์‚ถ์„ ์‚ด๋‹ค๊ฐ€ pull request๋ฅผ ํ†ตํ•ด mergeํ•˜๋ฉด ๋‹ค์‹œ ํ•ฉ์น  ์ˆ˜ ์žˆ์Œ !

git branch branchname
1
2
3
# ๐Ÿ‘€ ํ˜„์žฌ branch ํ™•์ธํ•˜๊ธฐ

git branch



๐Ÿ‘‰ branch ์ด๋™ํ•˜๊ธฐ !

1
git checkout branch002
1
2
3
# branch ์‚ญ์ œํ•˜๊ธฐ

git branch -d branch002



๐Ÿท tag

1
2
# git tag ์ƒ์„ฑํ•˜๊ธฐ
git tag <tag-name>
1
2
# ํŠน์ • ์ปค๋ฐ‹์— ํƒœ๊ทธ ์ƒ์„ฑํ•˜๊ธฐ (์ถ”๊ฐ€ํ•˜๊ธฐ)
git tag <tag-name> <commit-identifier>
1
2
3
# local tag๋ฅผ ์›๊ฒฉ ์ €์žฅ์†Œ์— ํ‘ธ์‹œํ•˜๊ธฐ
git push origin <tag-name>

1
2
# local์— ์ƒ์„ฑ๋˜์–ด ์žˆ๋Š” ์ „์ฒด ํƒœ๊ทธ ํ‘ธ์‹œํ•˜๊ธฐ.
git push origin --tags
1
2
# origin tag ์‚ญ์ œํ•˜๊ธฐ
git push origin :<tag-name>
This post is licensed under CC BY 4.0 by the author.