Skip to content

amamov/gits

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

6 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

GIT == Git Is Team




Git ์„ค์น˜

Git install (Window)

  1. Window Git ์„ค์น˜

  2. "git bash"๋ฅผ ๋ฐ์Šคํฌํƒ‘ ๊ฒ€์ƒ‰ํ•œ ํ›„ ์‹คํ–‰ํ•œ๋‹ค.

Git install (mac)

  1. ํ˜„์žฌ git version์„ ํ™•์ธํ•œ๋‹ค.

    • $ git --version
  2. Homebrew (Mac OS ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž)๋ฅผ ์„ค์น˜ํ•œ๋‹ค. ๋งํฌ

  3. Homebrew๋ฅผ ์ด์šฉํ•˜์—ฌ git์„ ์„ค์น˜ํ•œ๋‹ค.

    • $ brew install git
  4. ์„ค์น˜๋œ git ์ •๋ณด ํ™•์ธ

    • $ brew info git ์—ฌ๊ธฐ์„œ Dependencies์—์„œ Optiona์˜ pcre๊ฐ€ (x)๋กœ ๋˜์–ด ์žˆ๋‹ค๋ฉด pcre๋„ ์„ค์น˜ํ•ด์ค€๋‹ค. ($ brew install pcre)
  5. ์„ค์น˜ ํ›„ ์ „๊ณผ ๋™์ผํ•œ ๋ฒ„์ „ ์ •๋ณด๊ฐ€ ๋‚˜์˜จ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ๋ช…๋ นํ•œ๋‹ค.

    • echo "export PATH=/usr/local/bin:\$PATH" >> ~/.bash_profile

๊ธฐ๋ณธ์ ์ธ ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์–ด ์ •๋ฆฌ

$ cd ./myFolder   # ํ˜„์žฌ ํด๋” ์•ˆ์˜ myFolder๋กœ ๋“ค์–ด๊ฐ„๋‹ค. ("./"๋Š” ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค.)

$ cd ../   # ํ˜„์žฌ ํด๋”์˜ ๋ถ€๋ชจ ํด๋”๋กœ ์ด๋™ํ•œ๋‹ค.

$ pwd  # ํ˜„์žฌ ์–ด๋”” ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š”์ง€ ๊ฒฝ๋กœ๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.

$ ls   # ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ์žˆ๋Š” ํŒŒ์ผ ๋ชฉ๋ก๋“ค์„ ๋ณด์—ฌ์ค€๋‹ค.

$ tree   # ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ์•ˆ์— ์žˆ๋Š” tree๊ตฌ์กฐ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.
# brew install tree๋กœ ์„ค์น˜ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

$ mkdir myFolder   # myFolder ํด๋”๋ฅผ ํ˜„์žฌ ๊ฒฝ๋กœ์— ์ƒ์„ฑํ•œ๋‹ค.

$ touch myFile.html   # myFile.html์„ ํ˜„์žฌ ๊ฒฝ๋กœ์— ์ƒ์„ฑํ•œ๋‹ค.

$ rm -rf myFolder   # myFolder๋ฅผ ๋ฌป์ง€๋„ ๋”ฐ์ง€์ง€๋„ ์•Š๊ณ  ๋‹ค ์ง€์šฐ๊ธฐ.

$ rm -i myFolder   # ํŒŒ์ผ ํ•˜๋‚˜ํ•˜๋‚˜ ๋ฌผ์–ด๋ณด๊ณ  ๋‹ค ์ง€์šฐ๊ธฐ.

$ alias ๋‹จ์ถ•๋ช…๋ น์–ด="๋ช…๋ น์–ด"

git ์„ค์ • (git config)

  1. $ git config --global --list
  • git์— ๋Œ€ํ•œ ์„ค์ •์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.(์ „์—ญ์œผ๋กœ)
  • $ git config --list ์œผ๋กœ ์ €์žฅ์†Œ๋ณ„๋กœ ์„ค์ •์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  1. $ git config --global user.name github-username
  • git user name ์„ค์ • (--global์˜ ์˜๋ฏธ๋Š” ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ „์ฒด ๋ชจ๋“  ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ ์šฉ๋œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค.)
  • ex) $ git config --global user.name amamov
  1. $ git config --global user.email github-email
  • git email ์„ค์ •
  • ex) $ git config --global user.email ysangsuk78@gmail.com


github์— ์ฝ”๋“œ ์ €์žฅํ•˜๊ธฐ

git ์„œ๋ฒ„ ์ €์žฅ์†Œ(์›๊ฒฉ ์ €์žฅ์†Œ) ๋งŒ๋“ค๊ธฐ

  1. github์— ์ ‘์†ํ•˜์—ฌ Repositories์— ๋“ค์–ด๊ฐ€์„œ New ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค.

  2. Repository๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.



git ๋กœ์ปฌ ์ €์žฅ์†Œ ๋งŒ๋“ค๊ธฐ

  1. git bash (Window OS) ๋˜๋Š” ํ„ฐ๋ฏธ๋„(Mac OS)๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ๋“ค์–ด๊ฐ„๋‹ค.
$ cd work-dir
  1. git์„ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
$ git init
  1. git local ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ชจ๋“  ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋“ค์„ staging area๋กœ ์ด๋™์‹œํ‚จ๋‹ค.
$ git add .
  1. git local ์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ํŠน์ • ํŒŒ์ผ ๋˜๋Š” ํด๋”์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋“ค์„ staging area๋กœ ์ด๋™์‹œํ‚จ๋‹ค.
$ git add filename(or dirname)
  1. git staging area์— ์žˆ๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ๋“ค์„ repository๋กœ ์ด๋™์‹œํ‚จ๋‹ค.
    • ์งง์€ commit message๋กœ commit ํ•˜๋Š” ๊ฒฝ์šฐ : $ git commit -m "commit message"
    • ๊ธธ๊ณ  ์ž์„ธํ•œ commit message๋กœ commit ํ•˜๋Š” ๊ฒฝ์šฐ : $ git commit์œผ๋กœ ์ž‘์„ฑ ์ฐฝ์œผ๋กœ ๋„˜์–ด๊ฐ„ ํ›„ ์ž์„ธํžˆ ์ž‘์„ฑ
    • $ git commit -am "commit message" : add์™€ commit์„ ๋™์‹œ์— ํ•œ๋‹ค. (ํ•œ๋ฒˆ์ด๋ผ๋„ commit์„ ํ–ˆ๋˜ ํŒŒ์ผ์— ๋Œ€ํ•ด์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.)
$ git commit -m "first commit"
  1. main branch๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
$ git branch -M main

git ์„œ๋ฒ„ ์ €์žฅ์†Œ(์›๊ฒฉ ์ €์žฅ์†Œ)์™€ ๋กœ์ปฌ ์ €์žฅ์†Œ ์—ฐ๊ฒฐ & Push & Pull

  1. ์„œ๋ฒ„ ์ €์žฅ์†Œ์™€ ๋กœ์ปฌ ์ €์žฅ์†Œ์˜ ํ†ต๋กœ๋ฅผ ๋งŒ๋“ ๋‹ค.
$ git remote add origin https://github.com/amamov/git-study.git
  1. ๋กœ์ปฌ ์ €์žฅ์†Œ์˜ repository๋ฅผ ์„œ๋ฒ„์˜ origin main์˜ repository์— ์˜ฌ๋ฆฐ๋‹ค.
    • $ git push -fu origin main ๋ช…๋ น์–ด๋Š” ๋กœ์ปฌ ์ €์žฅ์†Œ์˜ repository๋ฅผ ์„œ๋ฒ„์˜ origin main์˜ repository์— ๊ฐ•์ œ๋กœ ์˜ฌ๋ฆฐ๋‹ค. (์„œ๋ฒ„ ์ €์žฅ์†Œ ํŒŒ์ผ๋“ค์€ ์‚ฌ๋ผ์ง„๋‹ค.)
$ git push -u origin main
  1. ์„œ๋ฒ„ ์ €์žฅ์†Œ์˜ repository๋ฅผ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ๊ฐ€์ ธ์˜จ๋‹ค.
$ git pull

git ์„œ๋ฒ„ ์ €์žฅ์†Œ์— ์žˆ๋Š” Repository๋ฅผ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์ €์žฅํ•˜๊ธฐ

$ git clone https://github.com/amamov/git-study.git



Git ๋ณ€๊ฒฝ์‚ฌํ•ญ ํ™•์ธํ•˜๊ธฐ

  • $ git log : git์— commit๋œ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • $ git diff commit_1_ID commit_2_ID : commit_1_ID ๊ธฐ์ค€์œผ๋กœ commit_2_ID์™€ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋น„๊ตํ•œ๋‹ค.
  • $ git diff ๋กœ์ปฌ์ €์žฅ์†Œ ์›๊ฒฉ์ €์žฅ์†Œ : ์›๊ฒฉ ์ €์žฅ์†Œ์™€ ๋กœ์ปฌ ์ €์žฅ์†Œ ๊ฐ„์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋น„๊ตํ•œ๋‹ค.
    • ex. $ git diff ๋น„๊ต๋Œ€์ƒ_branch์ด๋ฆ„ origin/branch์ด๋ฆ„
  • $ git diff ๋น„๊ต๋Œ€์ƒ_branch_์ด๋ฆ„ ๊ธฐ์ค€_branch_์ด๋ฆ„ : ๋ธŒ๋žœ์น˜๊ฐ„์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๋น„๊ตํ•œ๋‹ค.



Git์œผ๋กœ ์ˆ˜์ •์‚ฌํ•ญ resetํ•˜๊ธฐ

repository์— ์˜ฌ๋ฆฐ ์ƒํƒœ์—์„œ $ git reset์œผ๋กœ ๋˜๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

์–ด๋””๊นŒ์ง€ ๋˜๋Œ๋ฆด๊นŒ? ์˜ต์…˜
์ž‘์—… ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ˆ˜์ •ํ•˜๊ธฐ ์ „์œผ๋กœ ๋ฐ”๋€๋‹ค. --hard HEAD^
addํ•˜๊ธฐ ์ „ ์ƒํ™ฉ์œผ๋กœ ๋˜๋Œ์•„๊ฐ„๋‹ค. (๋””ํดํŠธ) --mixed HEAD^
commitํ•œ ๊ฒƒ ๊นŒ์ง€๋งŒ ์ทจ์†Œํ•œ๋‹ค. --soft HEAD^
  • HEAD : ๊ฐ€์žฅ ์ตœ๊ทผ ๋ฒ„์ „์—์„œ
  • ^ : ํ•˜๋‚˜ ๋˜๋Œ๋ฆฌ๊ธฐ

๋งŒ์•ฝ ๊ฐ€์žฅ ์ตœ๊ทผ ์ปค๋ฐ‹์œผ๋กœ๋ถ€ํ„ฐ ์„ธ ๊ฐœ ์ „์œผ๋กœ ๋˜๋Œ๋ฆฌ๋ ค๋ฉด $ git reset --hard HEAD^^^๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

ํŠน์ • ์ปค๋ฐ‹์œผ๋กœ ๋˜๋Œ๋ฆฌ๋ ค๋ฉด $ git reset --hard ๋ฒ„์ „_ID ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

$ git add .์œผ๋กœ stage์— ์˜ฌ๋ผ๊ฐ„ ํŒŒ์ผ๋“ค์„ $ git reset HEAD๋กœ ์ทจ์†Œํ•  ์ˆ˜ ์žˆ๋‹ค.


reset ๋Œ€์‹ ์— revert๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜๋Œ๋ฆฐ ๋ฒ„์ „ ์ดํ›„์˜ ๋ฒ„์ „๋“ค์€ ๋ชจ๋‘ ์œ ์ง€๋˜๊ณ , revert๋˜์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋‹ด์€ commit๋งŒ ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ๋‹ค. ์ฆ‰, reset์€ ๊ณผ๊ฑฐ ์ž์ฒด๋ฅผ ๋ฐ”๊พธ๋Š” ๋ช…๋ น์–ด์ด๊ณ , revert๋Š” ๊ณผ๊ฑฐ๋ฅผ ๋ณ€๊ฒฝ์‹œ์ผฐ๋‹ค๋Š” ์ƒˆ๋กœ์šด commit์œผ๋กœ์จ ์ƒˆ๋กœ์šด commit์„ ๋งŒ๋“œ๋Š” ๋ช…๋ น์ด๋‹ค.




Git Branch๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•

  • $ git branch

    • ํ˜„์žฌ branch ๋ชฉ๋ก ๋ณด๊ธฐ
  • $ git branch ๋ธŒ๋žœ์น˜์ด๋ฆ„

    • ์ƒˆ๋กœ์šด branch๋ฅผ ๋งŒ๋“ค๋‹ค.
  • $ git checkout ๋ธŒ๋žœ์น˜์ด๋ฆ„

    • ํŠน์ • branch๋กœ ๋“ค์–ด๊ฐ€๊ธฐ
  • $ git merge ํ•ฉ์น˜๋ ค๋Š”_๋ธŒ๋žœ์น˜_์ด๋ฆ„

    • ํ˜„์žฌ ๋ธŒ๋žœ์น˜์™€ ํ•ฉ์น˜๋ ค๋Š” ๋ธŒ๋žœ์น˜๋ฅผ ํ•ฉ์นœ๋‹ค.
  • $ git branch -d ์‚ญ์ œํ•˜๋ ค๋Š”_๋ธŒ๋žœ์น˜_์ด๋ฆ„

    • ํ•ด๋‹นํ•˜๋Š” ๋ธŒ๋žœ์น˜๋ฅผ ์‚ญ์ œํ•œ๋‹ค.



Github code versioning

git remote (-v)

์›๊ฒฉ์ €์žฅ์†Œ ์กฐํšŒ(์ถ”๊ฐ€)ํ•˜๊ธฐ

  • ๋‚ด ๋กœ์ปฌ repository์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๊ณ  ์žˆ๋Š” (ํ˜น์€ ํ•  ์ˆ˜ ์žˆ๋Š”) ์›๊ฒฉ ์ €์žฅ์†Œ๋“ค์˜ ๋ชฉ๋ก์„ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • -v์˜ต์…˜ : ๋‹จ์ถ•์ด๋ฆ„๊ณผ URL ๊ฐ™์ด ๋ณด๊ธฐ
  • $ git remote add <๋‹จ์ถ•์ด๋ฆ„> <URL> : ๊ธฐ์กด ์›Œํ‚น ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ƒˆ ์›๊ฒฉ์ €์žฅ์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ช…๋ น์–ด
    • $ git remote add origin <URL> : URL์— ์žˆ๋Š” ์›๊ฒฉ์ €์žฅ์†Œ๋ฅผ origin์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ธฐ
  • $ git remote rm <๋‹จ์ถ•์ด๋ฆ„> : ๋‹จ์ถ•์ด๋ฆ„์˜ ์›๊ฒฉ์ €์žฅ์†Œ์™€์˜ ์—ฐ๊ฒฐ์„ ์‚ญ์ œํ•œ๋‹ค.

git push

์›๊ฒฉ์ €์žฅ์†Œ์— ๋ฐ€์–ด๋„ฃ๊ธฐ

  • $ git push -u origin main : ๋‚ด repository์˜ main ๋ธŒ๋žœ์น˜๋ฅผ origin์˜ main ๋ธŒ๋žœ์น˜๋กœ pushํ•œ๋‹ค.
    • -u : origin main์„ ๋””ํดํŠธ๋กœ ์ง€์ •. ์ฆ‰, $ git push, $ git pull๋ฅผ ํ•  ๋•Œ ๋””ํดํŠธ๋กœ origin main์— push, pullํ•œ๋‹ค.

git pull

์›๊ฒฉ์ €์žฅ์†Œ ๊ฐ–๊ณ  ์™€์„œ ํ•ฉ์น˜๊ธฐ

  • $ git pull (origin main) : origin์„ ๋‚ด repository์˜ main ๋ธŒ๋žœ์น˜๋กœ ๊ฐ€์ง€๊ณ  ์˜จ๋‹ค.(merge)

git fetch

์›๊ฒฉ์ €์žฅ์†Œ ์ผ๋‹จ ๊ฐ–๊ณ ๋งŒ ์˜ค๊ธฐ

  • $ git fetch (origin main) : origin์„ ๋กœ์ปฌ repository์— mergeํ•˜์ง€ ๋ง๊ณ  ์ผ๋‹จ ๊ฐ€์ง€๊ณ  ์˜จ๋‹ค.
  • $ git checkout origin/main : origin/main ์ž„์‹œ ๋ธŒ๋žœ์น˜๋กœ ๋ฐ”๊พผ๋‹ค. -> origin์˜ ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

git clone

์›๊ฒฉ์ €์žฅ์†Œ ๋ณต์‚ฌํ•˜๊ธฐ

  • $ git clone <URL> : URL์— ์žˆ๋Š” ์›๊ฒฉ ์ €์žฅ์†Œ ๋‚ด์šฉ์„ ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋ณต์‚ฌํ•ด์˜ค๊ธฐ.
    • origin ์ž๋™ ์ƒ์„ฑ. ๋”ฐ๋ผ์„œ remote add๋Š” ํ•  ํ•„์š” ์—†๋‹ค.
  • $ git clone <URL> --branch <branch> --single-branch <folder>
    • URL์— ์žˆ๋Š” ์›๊ฒฉ์ €์žฅ์†Œ์˜ ํŠน์ • branch๋ฅผ cloneํ•˜์—ฌ folder๋ช…์„ ์ง€์ •ํ•œ๋‹ค.
  • git clone์‹œ์— origin์ด ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋ฏ€๋กœ ์ด๋ฅผ ์—†์• ์ฃผ๋ ค๋ฉด, $ rm -rf .git ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.



github์—์„œ ํ˜‘์—…์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•

joy๋ผ๋Š” ํŒ€์žฅ๊ณผ amamov๋ผ๋Š” ํŒ€์›์ด ํ˜‘์—…์„ ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ํŒ€์žฅ์ด ๋งŒ๋“  repository์ธ ํ”„๋กœ์ ํŠธ REPO๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ˜‘์—…์„ ์ง„ํ–‰ํ•œ๋‹ค๊ณ  ํ•˜์ž.

amamov๋Š” ํŒ€์žฅ์ด ๋งŒ๋“  repository๋ฅผ cloneํ•œ ํ›„, ๋กœ์ปฌ์˜ "amamov/main" branch์—์„œ ํŒ€์žฅ์˜ ์ฝ”๋“œ๋ฅผ ๋ฐ›์•„์˜ค๊ณ  "amamov/newbranch" branch์—์„œ ๋ฐ›์•„์˜จ ์ฝ”๋“œ(main)๋ฅผ ๋ณ‘ํ•ฉํ•˜์—ฌ ์ถ”๊ฐ€๋กœ ์ž‘์—…ํ•œ ์ฝ”๋“œ์™€ ํ•จ๊ป˜ ํŒ€์žฅ์—๊ฒŒ pull request๋ฅผ ๋ณด๋‚ธ๋‹ค. pull request๋ฅผ ๋ฐ›์€ ํŒ€์žฅ์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ฒดํฌํ•˜๊ณ  "joy/main"์— ์ตœ์ข…์ ์œผ๋กœ ๋ณ‘ํ•ฉํ•œ๋‹ค.

1. ํ˜‘์—… ๋Œ€์ƒ repository fork ํ•˜๊ธฐ

amamov๋Š” joy/REPO์— ๋“ค์–ด๊ฐ€์„œ fork ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค.


2. fork ํ•ด์˜จ ๊ณณ์—์„œ cloneํ•˜๊ธฐ

amamov๋Š” ์ž์‹ ์ด forkํ•œ repository๋ฅผ cloneํ•œ๋‹ค.


3. branch๋ฅผ ๋งŒ๋“ค๊ณ  ์ž‘์„ฑํ•˜๊ณ ์ž ํ•˜๋Š” ์ฝ”๋“œ(commit) ํŽธ์ง‘ ํ›„์— push

  1. amamov๋Š” cloneํ•œ REPO์— ๋“ค์–ด๊ฐ€์„œ $ git branch newbranch ๋ช…๋ น์„ ํ†ตํ•ด "newbranch"๋ผ๋Š” branch๋ฅผ ๋งŒ๋“ ๋‹ค.

    • "amamov/main" branch๋Š” ํŒ€์žฅ์˜ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์ˆœ์ˆ˜ branch์ด๋‹ค. (amamov๊ฐ€ ์ถ”๊ฐ€์ ์œผ๋กœ ์ฝ”๋“œ ์ž‘์—…์„ ํ•˜์ง€ ์•Š๊ณ  ์ˆœ์ˆ˜ํ•˜๊ฒŒ ํŒ€์žฅ์˜ ์ฝ”๋“œ๋ฅผ ๊ฐ€์ ธ์˜จ branch)
    • "amamov/newbranch" branch๋Š” ํŒ€์žฅ์˜ ์ฝ”๋“œ์™€ amamov๊ฐ€ ์ถ”๊ฐ€์ ์œผ๋กœ ์ฝ”๋“œ ์ž‘์—…์„ ์ง„ํ–‰ํ•œ branch์ด๋‹ค.
  2. $ git checkout newbranch ๋ช…๋ น์œผ๋กœ "newbranch"์— ๋“ค์–ด๊ฐ„๋‹ค.

  3. amamov๋Š” newbranch์—์„œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ๋“ฑ ์ž‘์—…์„ ํ•œ๋‹ค.

    • $ git add .
    • $ git commit
      • i๋ฅผ ๋ˆ„๋ฅด๊ณ  ๋‚ด์šฉ ์ž‘์„ฑ ํ›„์— escํ‚ค๋ฅผ ๋ˆ„๋ฅด๊ณ  :wq!๋ช…๋ น์–ด๋กœ ์ €์žฅํ•˜๊ณ  ๋‚˜๊ฐ„๋‹ค.
    • $ git push origin newbranch
      • "newbranch"๋ฅผ origin์— pushํ•œ๋‹ค.

4. pull request

  1. amamov๋Š” ์ž์‹ ์ด forkํ•œ REPO repository์— ๋“ค์–ด๊ฐ€๊ธฐ ์œ„ํ•ด github์— ๋“ค์–ด๊ฐ„๋‹ค.

  2. github์˜ ํ•ด๋‹น repository์— ๋“ค์–ด๊ฐ€์„œ Compare & Pull request ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ๋‹ค.

  3. ๊ทธ ๋‹ค์Œ Create pull request๋ฅผ ๋ˆŒ๋Ÿฌ์„œ pull request๋ฅผ ์‹œ๋„ํ•œ๋‹ค.


5. Merge pull request

  1. ํƒ์žฅ์€ github์— amamov๊ฐ€ pull requestํ•œ amamov:newbranch๊ฐ€ ๋ณด์ธ๋‹ค.

  2. ๋งŒ์•ฝ ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์ถฉ๋Œ์„ ํ•ด๊ฒฐํ•œ๋‹ค.

  3. Merge pull request ๋ฒ„ํŠผ์œผ๋กœ ๋ณ‘ํ•ฉ์„ ๋ฐ›์•„์ค€๋‹ค.

    • revert๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณ‘ํ•ฉ ์ด์ „์œผ๋กœ ๋Œ์•„๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
  4. (๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด amamov๋Š” newbranch๋ฅผ ์ง€์šฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.)


6. ํŒ€์žฅ(repository ๊ด€๋ฆฌ์ž)์ด REPO repository๋ฅผ ์ˆ˜์ •ํ•˜์˜€์„ ๋•Œ amamov(ํŒ€์›)๊ฐ€ ํŒ€์žฅ์ด ์ˆ˜์ •ํ•œ "joy/main"์„ ๊ฐ€์ ธ์™€์•ผ ํ•œ๋‹ค.

amamov๋Š” ์ž์‹ ์˜ ๋กœ์ปฌ ํ™˜๊ฒฝ์˜ REPO์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

  1. $ git remote add upstream <joy-URL> (์ตœ์ดˆ ํ•œ ๋ฒˆ๋งŒ)

    • "upstream"์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ joy์˜ repository URL์„ remoteํ•œ๋‹ค.
  2. $ git fetch upstream

    • upstream์— fetchํ•œ๋‹ค.(์ผ๋‹จ ๊ฐ€์ ธ์˜จ๋‹ค.)
    • ๋ณ€๊ฒจ ์‚ฌํ•ญ ํ™•์ธ ๊ฐ€๋Šฅ
  3. $ git checkout main

    • "main" branch๋กœ ๋“ค์–ด๊ฐ„๋‹ค.
  4. $ git merge upstream/main

    • "upstream"๊ณผ main์„ ๋ณ‘ํ•ฉํ•œ๋‹ค.
  5. $ git checkout newbranch

    • ์ž‘์—…์šฉ branch์ธ "newbranch"์— ๋“ค์–ด๊ฐ„๋‹ค.
  6. $ git merge main

    • "main" branch์™€ ํ˜„์žฌ branch์ธ "new branch"๋ฅผ ๋ณ‘ํ•ฉํ•œ๋‹ค.

About

GIT == Git Is Team

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages