λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ’ͺλ°λΈŒμ½”μŠ€

[Week1] Git λͺ…λ Ήμ–΄

by megan07 2024. 2. 28.

 

 

λͺ…λ Ήμ–΄μ—μ„œ <>ν‘œμ‹œλŠ” ꡬ뢄을 μœ„ν•΄ μž‘μ„±ν•œ κ²ƒμ΄λ―€λ‘œ 터미널에 μž…λ ₯ν•  λ•ŒλŠ” μƒλž΅ν•˜κ³  μž‘μ„±ν•΄μ£Όμ„Έμš”

λ§Œμ•½ git add <파일λͺ…>이라면

μ‹€μ œλ‘œ 터미널에 μž…λ ₯ν•  λ•ŒλŠ” git add test.txt 

git init μƒˆλ‘œμš΄ Git μ €μž₯μ†Œλ₯Ό μ΄ˆκΈ°ν™”ν•œλ‹€.

ν˜„μž¬ 디렉토리에 .gitμ΄λΌλŠ” ν•˜μœ„ 디렉토리가 μƒμ„±λ˜λ©°, Git μ €μž₯μ†Œλ‘œ μ‚¬μš©λœλ‹€.
git add <파일λͺ…> μž‘μ—… λ””λ ‰ν† λ¦¬μ˜ λ³€κ²½ 사항을 Staging Area에 μΆ”κ°€ν•œλ‹€. 

κ°„λ‹¨ν•˜κ²Œ λ§ν•˜λ©΄ μƒˆλ‘œμš΄ 버전에 포함될 νŒŒμΌμ„ μΆ”κ°€ν•˜λŠ” 것이닀.

예)
git add test.txt
test.txtνŒŒμΌμ„ staging area에 μΆ”κ°€
git commit Staging Area에 μžˆλŠ” νŒŒμΌλ“€μ˜ μŠ€λƒ…μƒ·μ„ μ°μ–΄μ„œ 둜컬 μ €μž₯μ†Œμ— 영ꡬ적으둜 μ €μž₯ν•œλ‹€.

κ°„λ‹¨ν•˜κ²Œ λ§ν•˜λ©΄ git add둜 μΆ”κ°€ν•œ λͺ¨λ“  νŒŒμΌλ“€μ˜ λ³€κ²½ 사항을 ν† λŒ€λ‘œ μƒˆλ‘œμš΄ 버전을 λ§Œλ“œλŠ” 것이닀.

보톡 λ³€κ²½ 사항에 λŒ€ν•œ μ„€λͺ…을 ν¬ν•¨ν•˜λŠ” 컀밋 λ©”μ‹œμ§€μ™€ ν•¨κ»˜ 이루어진닀.
예)
git commit -m "컀밋 λ©”μ‹œμ§€ μž…λ ₯"
git push <원격저μž₯μ†Œ> <둜컬 λΈŒλžœμΉ˜μ΄λ¦„> 둜컬 μ €μž₯μ†Œμ˜ λ³€κ²½ 사항을 원격 μ €μž₯μ†Œλ‘œ μ „μ†‘ν•œλ‹€.

일반적으둜 이 λͺ…λ Ήμ–΄λŠ” 둜컬 μ €μž₯μ†Œμ˜ 컀밋을 원격 μ €μž₯μ†Œλ‘œ μ—…λ‘œλ“œν•  λ•Œ μ‚¬μš©λœλ‹€.

예λ₯Ό λ“€μ–΄ κΉƒν—ˆλΈŒλ₯Ό μ‚¬μš©ν•œλ‹€λ©΄ λ‘œμ»¬μ—μ„œ μ €μž₯ν•œ 컀밋듀을 κΉƒν—ˆλΈŒ λ ˆν¬μ§€ν† λ¦¬μ— μ—…λ‘œλ“œ ν•˜λŠ” 것이닀.

예)
git push origin main

= 둜컬의 main 브랜치λ₯Ό origin(원격저μž₯μ†Œ)의 main 브랜치둜 μ—…λ‘œλ“œν•˜λŠ” 것
λ§Œμ•½μ— origin에 ν•΄λ‹Ή λΈŒλžœμΉ˜κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄, λ§Œλ“  후에 μ—…λ‘œλ“œν•œλ‹€.


κΉƒ 곡식 λ¬Έμ„œ:
git push origin master

Find a ref that matches master in the source repository (most likely, it would find refs/heads/master),
and update the same ref (e.g. refs/heads/master) in origin repository with it.
If master did not exist remotely, it would be created.


git log μ €μž₯μ†Œμ˜ 컀밋 νžˆμŠ€ν† λ¦¬λ₯Ό μ‘°νšŒν•œλ‹€.

컀밋 기둝듀을 확인할 수 μžˆλ‹€.
git status ν˜„μž¬ μž‘μ—… λ””λ ‰ν† λ¦¬μ˜ μƒνƒœλ₯Ό μ‘°νšŒν•œλ‹€.

λ³€κ²½λœ νŒŒμΌλ“€μ΄ μžˆλŠ”μ§€, Staging Area에 μ–΄λ–€ νŒŒμΌλ“€μ΄ μ˜¬λΌκ°€ μžˆλŠ”μ§€ 등을 확인할 수 μžˆλ‹€.
git remote 원격 μ €μž₯μ†Œλ₯Ό κ΄€λ¦¬ν•˜λŠ”λ° μ‚¬μš©λœλ‹€.

주둜 원격 μ €μž₯μ†Œλ₯Ό μΆ”κ°€ν•˜κ±°λ‚˜ μ œκ±°ν•˜κ³ , 원격 μ €μž₯μ†Œμ˜ 정보λ₯Ό ν™•μΈν•˜λŠ” λ“±μ˜ μž‘μ—…μ„ μˆ˜ν–‰ν•  λ•Œ μ‚¬μš©λ©λ‹ˆλ‹€.

ν˜„μž¬ μ„€μ •λœ 원격 μ €μž₯μ†Œμ˜ 이름 확인:
git remote

μ„€μ •λœ λͺ¨λ“  원격저μž₯μ†Œ 이름과 url 쑰회:
git remote -v

μΆ”κ°€:
git remote add 원격저μž₯μ†Œλ³„μΉ­(μΌλ°˜μ μœΌλ‘œλŠ” origin) 원격저μž₯μ†ŒURL

제거:
git remote remove 원격저μž₯μ†Œλ³„μΉ­
git branch κΉƒ 브랜치λ₯Ό ν™•μΈν•˜κ³  μΆ”κ°€ν•˜λŠ”λ° μ‚¬μš©λœλ‹€.

깃에 μ–΄λ–€ λΈŒλžœμΉ˜λ“€μ΄ μžˆλŠ”μ§€ 확인:
git branch

ν˜„μž¬ μž‘μ—… 쀑인 λΈŒλžœμΉ˜λŠ” *둜 κ°•μ‘°λœλ‹€.


리λͺ¨νŠΈ μ €μž₯μ†Œμ˜ 브랜치 확인:
git branch -r


브랜치 μΆ”κ°€:
git branch <브랜치 이름>



git checkout <브랜치 이름> μž‘μ—… 쀑인 브랜치λ₯Ό λ³€κ²½ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λœλ‹€.

ν˜„μž¬ μž‘μ—… 쀑인 λΈŒλžœμΉ˜κ°€ main인데
login 브랜치둜 λ³€κ²½ν•˜κ³  μ‹Άλ‹€λ©΄

git checkout login
git fetch 원격 μ €μž₯μ†Œμ˜ 변경사항을 ν™•μΈλ§Œ ν•˜κΈ° μœ„ν•΄ μ‚¬μš©ν•œλ‹€.
λ³€κ²½λœ 데이터λ₯Ό 둜컬 깃에 κ°€μ Έμ˜€μ§€λŠ” μ•ŠλŠ”λ‹€.

git fetch -p
원격 μ €μž₯μ†Œμ—μ„œ μ‚­μ œλœ λΈŒλžœμΉ˜κ°€ λ‘œμ»¬μ— μ‘΄μž¬ν•˜λŠ” 경우, 이λ₯Ό μ œκ±°ν•˜μ—¬ μ΅œμ‹  μƒνƒœλ₯Ό μœ μ§€ν•˜λŠ” μ˜΅μ…˜

git pull 원격 μ €μž₯μ†Œμ˜ 변경사항을 ν™•μΈν•˜κ³  μ΅œμ‹  데이터λ₯Ό λ³΅μ‚¬ν•˜μ—¬ 둜컬 깃에 κ°€μ Έμ˜¨λ‹€.