๐ŸคผGit

TIL) ๊นƒ

hellohailie 2022. 5. 19. 12:58

 

[๋ชฉํ‘œ]

๋กœ์ปฌ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.
staging area์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•˜๊ณ  git add๋กœ staging area์— ๋ณ€๊ฒฝํ•œ ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
git commit ์œผ๋กœ ์ž์‹ ์ด ์ž‘์—…ํ•œ ๊ฒฐ๊ณผ๋ฌผ์„ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

๋กœ์ปฌ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ž€?

 

๋กœ์ปฌ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋Š” ์ž์‹ ์˜ ์ปดํ“จํ„ฐ(๋กœ์ปฌ ํ™˜๊ฒฝ)์˜ ์ž‘์—… ๊ณต๊ฐ„์— ์œ„์น˜ํ•œ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์ด๋‹ค.

์ปดํ“จํ„ฐ ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ์— ์›ํ•˜๋Š” ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ด์„œ ๋กœ์ปฌ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์˜ ํŒŒ์ผ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ฐ˜๋Œ€๋กœ, Github์—์„œ ์ƒ์„ฑํ•œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋Š” ์›๊ฒฉ(remote) Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ๋‚ด ์ปดํ“จํ„ฐ ์ƒ์—๋Š” ์—†์ง€๋งŒ, ์›๊ฒฉ์— ์กด์žฌํ•˜๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์ด๋‹ค. 

 

๋กœ์ปฌ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ: ๋‚ด ์ปดํ“จํ„ฐ์˜ ์ €์žฅ์†Œ, ๋‚ด ๊ฐœ์ธ ์ „์šฉ ์ €์žฅ์†Œ

์›๊ฒฉ(remote) Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ: ์›๊ฒฉ ์˜จ๋ผ์ธ ์„œ๋ฒ„ ์ƒ์˜ ์ €์žฅ์†Œ, ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ํ•จ๊ป˜ ๊ณต์œ  ๊ฐ€๋Šฅ

 

 

<๋กœ์ปฌ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๊ณผ์ •>

  1. ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•  ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค๊ณ  ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์— ๋กœ์ปฌ Git repository๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ. (git init)
  2. ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„, ์ž‘์—… ๊ณต๊ฐ„(work space)์˜ ํŒŒ์ผ ๋ฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ git์˜ ๊ด€๋ฆฌ ํ•˜์— ์žˆ๋Š” ์ƒํƒœ๋กœ ์˜ฌ๋ ค์ค„ ์ˆ˜ ์žˆ๋‹ค. (git add) ์ด ์˜์—ญ์ด staging area์ด๋‹ค.
  3. staging area์˜ ํŒŒ์ผ์€ commit์ด ๊ฐ€๋Šฅ! commit์œผ๋กœ local Git repository์— ๋‚ด ์ฝ”๋“œ๋ฅผ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋‹ค. (git commit)

 


git init

 

์ผ๋ฐ˜์ ์œผ๋กœ ์ƒ์„ฑํ•˜๊ณ  ๋‹ค๋ฃจ๋Š” ํด๋”๋Š” ํŒŒ์ผ์„ ์ €์žฅํ•˜๊ณ  ์‚ญ์ œํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ, ์ด๋ฏธ ์‚ญ์ œํ•œ ํŒŒ์ผ์„ ๋‹ค์‹œ ๋˜๋Œ๋ฆฌ๊ฑฐ๋‚˜ ํŒŒ์ผ์˜ ๋ณ€๊ฒฝ์ ์„ ์ผ์ผํžˆ ๊ธฐ๋กํ–ˆ๋‹ค๊ฐ€ ๋ณต์›ํ•˜๋Š” ๊ธฐ๋Šฅ์€ ๋”ฐ๋กœ ์—†๋‹ค.

์ผ๋ฐ˜์ ์ธ ํด๋”์— Git repository๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” Git์„ ์ด์šฉํ•˜์—ฌ ์ž์‹ ์˜ ํ”„๋กœ๊ทธ๋žจ ๋ฒ„์ „ ๊ด€๋ฆฌ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Git repository๋Š” git init ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

Staging area๋ž€?

staging area: ์˜จ์ „ํžˆ ์ €์žฅํ•˜๊ณ  ์‹ถ์€ ์ฝ”๋“œ๋ฅผ ๋ชจ์•„๋†“์€ ๋ฌถ์Œ

staging area์— ์žˆ๋Š” ํŒŒ์ผ๋งŒ commit์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

  • commit
    • staging area์˜ ์ฝ”๋“œ ๋ฌถ์Œ์„ ์ €์žฅํ•˜๊ธฐ๋กœ ๊ฒฐ์‹ฌํ•˜๊ณ  (git commit)
    • staging area ์ฝ”๋“œ์˜ ์šฉ๋„๋ฅผ ์ ์–ด๋‘๋Š” ํ–‰์œ„ (์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ -m "commit message")

 

git add: staging area์— ๋„ฃ๊ธฐ

git add ๋ช…๋ น์–ด๋กœ ์ž‘์—… ๊ณต๊ฐ„์˜ ์ฝ”๋“œ๋ฅผ staging area๋กœ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ๋‹ค. // untracked file๋ฅผ staging area๋กœ ์ถ”๊ฐ€ํ•ด์„œ git์˜ ๊ด€๋ฆฌํ•˜์— ๋‘”๋‹ค. 

 

git add <๊ฒฝ๋กœ๋ช…> // ๋‚ด local์˜ untracked file์„ git์˜ ๊ด€๋ฆฌ ํ•˜์ธ staging area๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. 

git add . //staging area์— ๋ชจ๋“  ํŒŒ์ผ์„ ํ•œ๋ฒˆ์— ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

git status๋กœ ํ˜„์žฌ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ƒํƒœ ํ™•์ธํ•˜๊ธฐ

staging area, untracked files์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

git commit์œผ๋กœ ๋กœ์ปฌ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๊ธฐ๋กํ•˜๊ธฐ

staging area์— ์ฝ”๋“œ๋ฅผ ์ž˜ ๋ชจ์•„๋‘์—ˆ๋‹ค๋ฉด, ์ด์ œ commit์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

commit์€ staging area์— ์žˆ๋Š” ์ฝ”๋“œ ๋‚ด์—ญ์„ ๊ทธ๋Œ€๋กœ ์Šค๋ƒ…์ƒท์„ ์ฐ์–ด์„œ ๊ธฐ๋กํ•˜๋Š” ํ–‰์œ„์ด๋‹ค.

 

git commit: ์ˆ˜์ • ์ž‘์—…์ด ๋๋‚ฌ์„ ๋•Œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅ

 

commit์€ ์ž‘์€ ๋‹จ์œ„๋กœ ์ž์ฃผ ํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค. 

- ์ฝ”๋“œ๋ฅผ ์ž˜๋ชป ์ ์€ ๊ฒฝ์šฐ์—, ์ด์ „ ๊ธฐ๋ก์„ ๋” ์‰ฝ๊ฒŒ ๋ณต์›ํ•  ์ˆ˜ ์žˆ๋‹ค.

- ๋ˆ„๊ฐ€ ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ๋Š”์ง€ ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. /merge, rebase

 

 

git commit -m "๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ html, css ์™„์„ฑ"

 

 


[๋ชฉํ‘œ]

์›๊ฒฉ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ฐœ๋…์„ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.
์›๊ฒฉ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
git push ๋กœ ๋กœ์ปฌ GIt ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋‚ด์šฉ์„ ์›๊ฒฉ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
git pull ๋กœ ์›๊ฒฉ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋‚ด์šฉ์„ ๋กœ์ปฌ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์›๊ฒฉ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋‹ค๋ฃจ๊ธฐ

 

  1. Github์—์„œ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑ
  2. ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ git url์„ ๋“ฑ๋ก (git remote add)
  3. ๋กœ์ปฌ Git repository์— ๊ธฐ๋กํ•œ ๋‚ด์—ญ์„ ์›๊ฒฉ Git repository์— push. (git push)

 

๋กœ์ปฌ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์›๊ฒฉ Git ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์ฝ”๋“œ๋ฅผ ์˜ฎ๊ธฐ๊ธฐ ์œ„ํ•ด์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๋Š” git push ์ด๋‹ค.

 

 

git remote add

git remote add๋Š” ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋“ฑ๋กํ•˜๋Š” ๋ช…๋ น์–ด์ž…๋‹ˆ๋‹ค. ์‰ฝ๊ฒŒ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด ์ด๋ฆ„์„ ์ง€์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๊ณ , ์ด๋ฆ„ ๋’ค์— ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ ์œผ๋ฉด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

 

<name>: ์•ž์œผ๋กœ ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋Œ€์‹ ํ•  ์ด๋ฆ„ (ex: origin)

<URL>: ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ (ex: git@github.com:codestates-seb/agora-states-fe.git )

 

์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋“ฑ๋กํ•˜๊ธฐ => git remote add <remote> <URL> ์ˆœ์„œ๋กœ ์ž…๋ ฅํ•˜๋ฉด ๋œ๋‹ค.

 

 

git push

git push ๋Š” ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๊ธฐ๋กํ•œ ๋‚ด์—ญ์„ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์˜ฎ๊ธฐ๋Š” ์ž‘์—…

git push๋Š” ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•œ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๊ธฐ์กด ์ปค๋ฐ‹ ๊ธฐ๋ก์„ ์˜ฎ๊ธฐ๊ฑฐ๋‚˜, ๊ธฐ์กด ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ผ๋ถ€ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ์˜ฎ๊ธฐ๋Š”๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

git push <remote> <branch>

๋‹ค๋ฅธ CLI ๋ช…๋ น์–ด์ฒ˜๋Ÿผ, git push๋„ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

 

 

git pull

git pull ๋Š” ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ธฐ๋ก์„ ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋กœ ์˜ฎ๊ธฐ๋Š” ์ž‘์—…์ด๋‹ค.

git pull์€ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•œ ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๊ธฐ์กด ์ปค๋ฐ‹ ๊ธฐ๋ก์„ ์˜ฎ๊ธฐ๊ฑฐ๋‚˜, ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์™€ ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์ผ๋ถ€ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ์˜ฎ๊ธฐ๋Š”๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

git pull <remote> <branch>

๋‹ค๋ฅธ CLI ๋ช…๋ น์–ด์ฒ˜๋Ÿผ, git push ๋„ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. 

<remote> ์—๋Š” ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ , <branch> ์—๋Š” ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•œ๋‹ค.