Git

Git ๊ธฐ๋ณธ๋ช…๋ น์–ด

# ๋กœ์ปฌ Git ์ €์žฅ์†Œ ์ƒ์„ฑ
$ git init

# Git ์ƒํƒœ ์ •๋ณด
$ git status

# ์ƒํƒœ ์ •๋ณด ์š”์•ฝ (summery, ๋ณ€๊ฒฝํŒŒ์ผ์ด ๋งŽ์€ ๊ฒฝ์šฐ ์œ ์šฉ)
$ git status -s

# ์˜ต์…˜ ์„ค์ •

# ์ „์—ญ์  ํ™•์ธ
$ git conifg --global <์˜ต์…˜๋ช…>
# ์„ค์ •
$ git conifg --global <์˜ต์…˜๋ช…> <์ƒˆ๋กœ์šด๊ฐ’ ์„ค์ •>
# ์‚ญ์ œ
$ git conifg --global unset <์˜ต์…˜๋ช…>

# ์ง€์—ญ ํ™•์ธ
$ git conifg --local <์˜ต์…˜๋ช…>
# ์„ค์ •
$ git conifg --local <์˜ต์…˜๋ช…> <์ƒˆ๋กœ์šด๊ฐ’ ์„ค์ •>
# ์‚ญ์ œ
$ git conifg --global unset <์˜ต์…˜๋ช…>

# ์ง€์—ญ ํ™•์ธ
$ git conifg --systme <์˜ต์…˜๋ช…>
# ์„ค์ •
$ git conifg --system <์˜ต์…˜๋ช…> <์ƒˆ๋กœ์šด๊ฐ’ ์„ค์ •>
# ์‚ญ์ œ
$ git conifg --system unset <์˜ต์…˜๋ช…>

Github์— push ๋œ ํŒŒ์ผ ์‚ญ์ œํ•˜๊ธฐ

1. github์— ์˜ฌ๋ผ๊ฐ„ ํŒŒ์ผ ์บ์‹œ ์‚ญ์ œ

# git rm --cached ํŒŒ์ผ๋ช…
$ git rm --cached a.txt

# git rm --cached [๋””๋ ‰ํ† ๋ฆฌ๋ช…] => ํ†ต์œผ๋กœ ์‚ญ์ œ
$ git rm --cached .idea/

2. .gitignore ์„ค์ •

  • ๊ด€๋ จ ํŒŒ์ผ์ด ์„ค์ •๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด, ์„ค์ •ํ•˜์—ฌ ์›๊ฒฉ์ €์žฅ์†Œ์— ์˜ฌ๋ผ๊ฐ€์ง€ ์•Š๋„๋ก ๊ด€๋ฆฌํ•˜๊ธฐ

3. ์›๊ฒฉ์ €์žฅ์†Œ ์ ์šฉ (๊ผญ)

  • ์›๊ฒฉ์ €์žฅ์†Œ์—์„œ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ผญ ์ปค๋ฐ‹์„ํ•˜๊ณ  ํ‘ธ์‹œ๋ฅผ ํ•ด์ค˜์•ผํ•œ๋‹ค

$ git commit -m "fixed"
$ git push origin master

fork ํ›„ ํ•ด๋‹น ํ”„๋กœ์ ํŠธ ์ตœ์‹ ๋ฒ„์ „ ์œ ์ง€

  • ์›๋ณธ ์†Œ์Šค๋Š” ๊ณ„์† ์†Œ์Šค์ฝ”๋“œ๊ฐ€ ๋ณ€๊ฒฝ๋จ

  • fork ํ•ด๋†“์€ ๋ธŒ๋žœ์น˜๋Š” ์˜ˆ์ „ ์ƒํƒœ ๊ทธ๋Œ€๋กœ ๋ฉˆ์ถฐ์žˆ์Œ -> ์‹ฑํฌ ์•ˆ๋งž์Œ

ํ•ด๊ฒฐ

1. upstream ๋“ฑ๋ก

  • ๋ณดํ†ต ์›๋ณธ์†Œ์Šค๊ฐ€ ์žˆ๋Š” ์œ„์น˜ (upstream : ์ƒ๋ฅ˜)

    • ๋Œ€์ฒด๋กœ upstream์€ api๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ชฝ์„ ๋งํ•จ

# remote ์ƒํƒœ ํ™•์ธ
$ git remote -v

# origin  https://github.com/somyungsub/prgrms-ct-java.git (fetch)
# origin  https://github.com/somyungsub/prgrms-ct-java.git (push)

$ git remote add upstream https://github.com/learn-programmers/prgrms-ct-java.git
$ git remote -v

# origin  https://github.com/somyungsub/prgrms-ct-java.git (fetch)
# origin  https://github.com/somyungsub/prgrms-ct-java.git (push)
# upstream        https://github.com/learn-programmers/prgrms-ct-java.git (fetch)
# upstream        https://github.com/learn-programmers/prgrms-ct-java.git (push)

# git remote remove upstream -> ์—…์ŠคํŠธ๋ฆผ ์ž˜๋ชป ์ €์žฅ๋œ ๊ฒฝ์šฐ ์‚ญ์ œ ๋ช…๋ น์–ด
  • origin ์œผ๋กœ ๋˜์–ด์žˆ๋Š” ๋ถ€๋ถ„์ด ํ˜„์žฌ ์›๊ฒฉ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์œ„์น˜๋ฅผ ๋งํ•จ

  • push ํ•  ์œ„์น˜์™€ fetch ๋ฐ›์„ ์›๊ฒฉ ์œ„์น˜

  • origin ์œ„์น˜๊ฐ€ downstream์ด ๋œ๋‹ค (ํ•˜๋ฅ˜, ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ์ธก)

    • ์—ฌ๊ธฐ์—์„œ๋Š” ์›๋ณธ์†Œ์Šค์— fetch ์š”์ฒญ๋“ฑ api๋ฅผ ์š”์ฒญํ•˜์—ฌ ์‹ฑํฌ๋ฅผ ๋งž์ถค

  • upstream ์œ„์น˜๊ฐ€ ์ƒ๋ฅ˜(api, ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ์ธก)

2. ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”

# upstream ์œ„์น˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ˜„์žฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ (origin)์œผ๋กœ ํŽ˜์น˜ ์ž‘์—…์„ ํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์Œ
$ git fetch upstream

# ๋กœ์ปฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋ณ‘ํ•ฉ
$ git merge upstream/master

Last updated