Deep_Dev
article thumbnail

 

 

ν˜‘μ—…μ˜ μ„Έ 가지 μ‹œλ‚˜λ¦¬μ˜€

1. λ‚΄ λ‘œμ»¬μ €μž₯μ†ŒλŠ” λ³€ν–ˆλŠ”λ° 원격 μ €μž₯μ†ŒλŠ” 변함 μ—†λŠ” 경우

2. λ‚΄ λ‘œμ»¬μ €μž₯μ†ŒλŠ” 변함 μ—†λŠ”λ° 원격 μ €μž₯μ†ŒλŠ” λ³€ν•œ 경우

3. λ‚΄ λ‘œμ»¬μ €μž₯μ†Œλ„ λ³€ν–ˆλŠ”λ° 원격 μ €μž₯μ†Œλ„ λ³€ν•œ 경우

 

βœ… 첫번 μ§Έ 경우 

κ·Έλƒ₯  push  ν•˜λ©΄ 그만

 

βœ… λ‘λ²ˆ μ§Έ 경우

 git pull 둜 동기화 ν›„ push  ν•˜κΈ°

 

βœ… μ„Έλ²ˆ μ§Έ 경우

λ‚΄κ°€ λ‚΄ λ‘œμ»¬μ €μž₯μ†Œμ˜ μ½”λ“œλ₯Ό μˆ˜μ •ν–ˆλŠ”λ°, λ‹€λ₯Έ μ‚¬λžŒμ΄ μ™€μ„œ 또 μˆ˜μ •ν•œ κ²½μš°μ΄λ‹€.

 

1. rebase

 

2. pull request (-> merge)

"λ‚΄κ°€ 방금 μƒˆ λ³€ν™”λ₯Ό λ§Œλ“€μ–΄λƒˆλŠ”λ°, λ‚΄ μƒˆ 버전을 λ°›μ•„μ€˜"

"승인" -> merge 

 

 

 


βœ… λ‚˜λŠ” 변함없고 원격이 λ³€ν•œ 경우 : pull & push

원격저μž₯μ†Œ μ—°κ²° :  git remote add origin <url> 

git push -u origin main : "λ””ν΄νŠΈλ‘œ origin에 밀어넣어라. main에 μžˆλŠ” λ‚΄μš©μ„"

 

첫번째 푸쉬 μ™„λ£Œ

 

< μ—¬κΈ°λΆ€ν„° μ‹œλ‚˜λ¦¬μ˜€ μ‹œμž‘ >

- λˆ„κ°€ λ“€μ–΄μ™€μ„œ 원격Repo의 λ‚΄μš©μ„ μˆ˜μ •ν–ˆλ‹€. ( "  // λ‘λ²ˆ μ§Έ 버전 관리 ")

-> λˆ„κ΅°κ°€κ°€ λ‘λ²ˆ μ§Έ 컀밋을 λ§Œλ“€μ–΄ λ‚Έ 상황이닀.

 

πŸ’‘ 이 λ•Œ, 동기화λ₯Ό ν•΄μ€€λ‹€. ( 원격저μž₯μ†Œμ™€ λ™μΌν•˜κ²Œ λ§Œλ“€μ–΄μ£ΌκΈ° )

πŸ“Œ git pull (μœ„μ— pushν• λ•Œ -u μ˜΅μ…˜μ„ μ€€ 경우 )ν˜Ήμ€ git pull origin main

git pull 을 ν•˜λ©΄
error: cannot pull with rebase: You have unstaged changes.
error: please commit or stash them.
이런 μ—λŸ¬κ°€ λ‚˜μ˜¬ 수 μžˆλ‹€.

이 μ—λŸ¬λŠ” "git pull" λͺ…령을 μ‹€ν–‰ν•  λ•Œ λ°œμƒν•œ κ²ƒμœΌλ‘œ, ν˜„μž¬ μž‘μ—… 디렉토리에 μ»€λ°‹λ˜μ§€ μ•Šμ€ λ³€κ²½ 사항이 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€. "git pull" λͺ…령은 원격 μ €μž₯μ†Œμ˜ λ³€κ²½ 사항을 둜컬둜 κ°€μ Έμ˜€λŠ” μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ”λ°, ν˜„μž¬ μž‘μ—… 디렉토리에 λ³€κ²½ 사항이 있으면 좩돌이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

이 문제λ₯Ό ν•΄κ²°ν•˜λ €λ©΄ λ‹€μŒ 쀑 ν•˜λ‚˜λ₯Ό 선택할 수 μžˆμŠ΅λ‹ˆλ‹€:
λ³€κ²½ 사항을 μ»€λ°‹ν•˜κΈ°: λ³€κ²½ 사항을 μ»€λ°‹ν•˜μ—¬ ν˜„μž¬ λΈŒλžœμΉ˜μ— λ³€κ²½ 사항을 μ €μž₯ν•˜κ³ , κ·Έ 후에 "git pull"을 μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
git add .
git commit -m "컀밋 λ©”μ‹œμ§€"
git pull

 

πŸ”— * 좩돌이 λ°œμƒν•˜λŠ” 경우 * 

예λ₯Ό λ“€μ–΄, λ‚˜λŠ” μ„Έλ²ˆ μ§Έ 컀밋을 진행쀑인데, 이게 μž‘μ—…μ΄ μ™„λ£Œλ˜λ©΄ push을 할것이닀.

근데 λ§Œμ•½μ— 이 λ•Œ, λ‹€λ₯Έ νŒ€μ›μ΄ 원격저μž₯μ†Œμ—μ„œλ„ μˆ˜μ •μ€‘μ΄μ—ˆλ‹€λ©΄ 좩돌이 μΌμ–΄λ‚œλ‹€. ( rejected )

경계선을 κΈ°μ€€μœΌλ‘œ conflictκ°€ 일어남. -> λ‚˜μ˜ μž‘μ—…μ„ push할지 , λ‹€λ₯Έ μ‚¬λžŒμ˜ μž‘μ—…μ„ pull ν• μ§€λŠ” μˆ˜λ™μœΌλ‘œ ν•΄μ•Όν•œλ‹€.

 

 

βœ… λ‚˜λ„ λ³€ν–ˆκ³  원격도 λ³€ν•œ 경우 : pull request

1. ν˜‘μ—… λŒ€μƒ Repository forkν•˜κΈ°

 

2. fork ν•΄μ˜¨ κ³³μ—μ„œ clone ν•˜κΈ° 

- λ‚΄ μ €μž₯μ†ŒRepoμ—μ„œ ν•΄λ‹Ή μ €μž₯μ†Œ url λ³΅μ‚¬ν•˜κ³  

- μž‘μ—… ν•  local μ €μž₯μ†Œ ν„°λ―Έλ„μ—μ„œ git clone url 

 

3. branchλ₯Ό λ§Œλ“€κ³  μž‘μ„±ν•˜κ³ μž ν•˜λŠ” μ½”λ“œ(commit) μž‘μ„±

git branch newBranch 

git checkout newBranch 

 

이후

git add index.html  

git commit ( ν˜Ήμ€ git commit -m )

 

git push origin newBranch ( newBranch의 λ‚΄μš©μ„ origin으둜 )

 

+ pushκΆŒν•œ μ£ΌκΈ° ( collaboratorμΆ”κ°€ν•˜κΈ° )

 

 

 

 

 

πŸ“ 좜처

https://www.inflearn.com/course/%EB%B9%A0%EB%A5%B4%EA%B2%8C-git

 

λΉ λ₯΄κ²Œ git - ν•΅μ‹¬λ§Œ 골라 λ°°μš°λŠ” Git/Github κ°•μ˜ - μΈν”„λŸ°

κ°œλ°œμžμ—κ²Œ λ²„μ „κ΄€λ¦¬λŠ” 이제 ν•„μˆ˜ 지식이라고 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 기초적인 git λͺ…령어와 Github νšŒμ›κ°€μž…λΆ€ν„° μ°¨κ·Όμ°¨κ·Ό Gitκ³Ό Githubλ₯Ό λ°°μ›Œλ³΄λ„λ‘ ν•©μ‹œλ‹€ :), πŸ™†πŸ»‍♀ λŒ€μ²΄ git이 뭐길래 λŒ€λΆ€λΆ„μ˜ 개

www.inflearn.com