[πŸ‘¨πŸ»β€πŸ’»TA9 인턴 50일차]Git λͺ…λ Ήμ–΄ 및 μš©μ–΄μ •λ¦¬

GoofiΒ·2023λ…„ 9μ›” 6일
0

🌈 λͺ…λ Ήμ–΄

git μ‚¬μš©μž 정보 등둝 λ‹‰λ„€μž„ μž…λ ₯

$ git config --global user.name "Leutbing"

이메일 μž…λ ₯

$ git config --global user.email spdhsrnvl123@naver.com

ν˜„μž¬ μœ„μΉ˜μ—μ„œ μ§€μ—­ μ €μž₯μ†Œλ₯Ό 생성

  • .gitμ΄λΌλŠ” μˆ¨κ²¨μ§„ 폴더가 λ§Œλ“€μ–΄μ§„λ‹€.
$ git init

λ³€κ²½λœ 파일 확인

$ git status

[파일λͺ….ν™•μž₯자λͺ…]을 μŠ€ν…Œμ΄μ§€μ— 올림

$ git add [파일λͺ….ν™•μž₯자λͺ…]

μ»€λ°‹ν•˜κΈ°

$ git commit -m "컀밋 λ©”μ‹œμ§€"

μƒμ„±ν•œ 컀밋 보기

$ git log

ν‘Έμ‹œν•˜κΈ°

$ git push [remote name] [branch name]

원격 μ €μž₯μ†Œ μΆ”κ°€

  • 원격 μ €μž₯μ†Œ μΆ”κ°€λŠ” git remote add <이름> <μ£Όμ†Œ> λͺ…λ Ήμ–΄λ‘œ μΆ”κ°€ν•  수 μžˆλ‹€.
$ git remote add origin https://github.com/아이디/이름.git

원격 μ €μž₯μ†Œ 확인

  • git remote λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜λ©΄ μ—°κ²°λœ 원격 μ €μž₯μ†Œλ₯Ό 확인할 수 μžˆλ‹€.
  • λ“±λ‘λœ 원격 μ €μž₯μ†Œκ°€ μ—†λ‹€λ©΄ 아무 값도 좜λ ₯되 μ•ŠλŠ”λ‹€.
$ git remote

원격 μ €μž₯μ†Œ 더 μžμ„Έν•œ 정보 확인

$ git remote show [remote name]

원격 μ €μž₯μ†Œ 이름 λ³€κ²½ν•˜κΈ°

$ git remote rename [existing remote name] [change remote name]

원격 μ €μž₯μ†Œ μ‚­μ œ

$ git remote rm [branch name]

브랜치 확인

$ git branch

브랜치둜 이동

$ git checkout [branch name]

브랜치 μΆ”κ°€

$ git branch [branch name]

브랜치 μ‚­μ œ

$ git branch -d [branch name]

원격 μ €μž₯μ†Œμ˜ 컀밋을 μ§€μ—­ μ €μž₯μ†Œλ‘œ κ°€μ Έμ˜΄

$ git pull [remote name][branch name]

원격 μ €μž₯μ†Œμ˜ 컀밋을 κ°€μ Έμ˜€κΈ°λ§Œ ν•˜κ³  mergeν•˜μ§€ μ•ŠλŠ”λ‹€

$ git fetch

reference Blog


πŸš€ 브랜치(Branch)

μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•  λ•Œμ— κ°œλ°œμžλ“€μ€ λ™μΌν•œ μ†ŒμŠ€μ½”λ“œλ₯Ό ν•¨κ»˜ κ³΅μœ ν•˜κ³  λ‹€λ£¨κ²Œ λœλ‹€.
λ™μΌν•œ μ†ŒμŠ€μ½”λ“œ μœ„μ—μ„œ μ–΄λ–€ κ°œλ°œμžλŠ” 버그λ₯Ό μˆ˜μ •ν•˜κΈ°λ„ ν•˜κ³  또 λ‹€λ₯Έ κ°œλ°œμžλŠ” μƒˆλ‘œμš΄ κΈ°λŠ₯을 λ§Œλ“€μ–΄ 내기도 ν•œλ‹€. 이와 같이 μ—¬λŸ¬ μ‚¬λžŒμ΄ λ™μΌν•œ μ†ŒμŠ€μ½”λ“œλ₯Ό 기반으둜 μ„œλ‘œ λ‹€λ₯Έ μž‘μ—…μ„ ν•  λ•Œμ—λŠ” 각각 μ„œλ‘œ λ‹€λ₯Έ λ²„μ „μ˜ μ½”λ“œκ°€ λ§Œλ“€μ–΄ 질 수 밖에 μ—†λ‹€.

πŸ“– 해결방법

μ—¬λŸ¬ κ°œλ°œμžλ“€μ΄ λ™μ‹œμ— λ‹€μ–‘ν•œ μž‘μ—…μ„ ν•  수 있게 λ§Œλ“€μ–΄ μ£ΌλŠ” κΈ°λŠ₯인 브랜치(Branch)λ₯Ό μ‚¬μš©ν•˜λ©΄ λœλ‹€.

πŸͺ„λΈŒλžœμΉ˜(Branch)λž€

  • λ…λ¦½μ μœΌλ‘œ μ–΄λ–€ μž‘μ—…μ„ μ§„ν–‰ν•˜κΈ° μœ„ν•œ κ°œλ…μ΄λ‹€.
  • 각자 독립적인 μž‘μ—… μ˜μ—­(μ €μž₯μ†Œ) μ•ˆμ—μ„œ λ§ˆμŒλŒ€λ‘œ μ†ŒμŠ€μ½”λ“œλ₯Ό λ³€κ²½ν•  수 μžˆλ‹€.
    • λΆ„λ¦¬λœ μž‘μ—… μ˜μ—­μ—μ„œ λ³€κ²½λœ λ‚΄μš©μ€ λ‚˜μ€‘μ— μ›λž˜μ˜ 버전과 λΉ„κ΅ν•΄μ„œ ν•˜λ‚˜μ˜ μƒˆλ‘œμš΄ λ²„μ „μœΌλ‘œ λ§Œλ“€μ–΄ λ‚Ό 수 μžˆλ‹€.
  • ν•„μš”μ— μ˜ν•΄ λ§Œλ“€μ–΄μ§€λŠ” 각각의 λΈŒλžœμΉ˜λŠ” λ‹€λ₯Έ 브랜치의 영ν–₯을 λ°›μ§€ μ•ŠκΈ° λ•Œλ¬Έμ—, μ—¬λŸ¬ μž‘μ—…μ„ λ™μ‹œμ— μ§„ν–‰ν•  수 μžˆλ‹€.

μΆ”κ°€μ μœΌλ‘œ

λ§Œλ“€μ–΄μ§„ λΈŒλžœμΉ˜λŠ” λ‹€λ₯Έ λΈŒλžœμΉ˜μ™€ 병합(Merge)ν•¨μœΌλ‘œμ¨, μž‘μ—…ν•œ λ‚΄μš©μ„ λ‹€μ‹œ μƒˆλ‘œμš΄ ν•˜λ‚˜μ˜ 브랜치둜 λͺ¨μ„ 수 μžˆλ‹€.

μ—¬λŸ¬ λͺ…μ΄μ„œ λ™μ‹œμ— μž‘μ—…μ„ ν•  λ•Œμ—λŠ” λ‹€λ₯Έ μ‚¬λžŒμ˜ μž‘μ—…μ— 영ν–₯을 μ£Όκ±°λ‚˜ λ°›μ§€ μ•Šλ„λ‘, λ¨Όμ € 메인 λΈŒλžœμΉ˜μ—μ„œ μžμ‹ μ˜ μž‘μ—… μ „μš© 브랜치λ₯Ό λ§Œλ“ λ‹€. 그리고 각자 μž‘μ—…μ„ μ§„ν–‰ν•œ ν›„, μž‘μ—…μ΄ λλ‚œ μ‚¬λžŒμ€ 메인 λΈŒλžœμΉ˜μ— μžμ‹ μ˜ 브랜치의 λ³€κ²½ 사항을 μ μš©ν•œλ‹€. μ΄λ ‡κ²Œ ν•¨μœΌλ‘œμ¨ λ‹€λ₯Έ μ‚¬λžŒμ˜ μž‘μ—…μ— 영ν–₯을 λ°›μ§€ μ•Šκ³  λ…λ¦½μ μœΌλ‘œ νŠΉμ • μž‘μ—…μ„ μˆ˜ν–‰ν•˜κ³  κ·Έ κ²°κ³Όλ₯Ό ν•˜λ‚˜λ‘œ λͺ¨μ•„ λ‚˜κ°€κ²Œ λœλ‹€. μ΄λŸ¬ν•œ λ°©μ‹μœΌλ‘œ μž‘μ—…ν•  경우 'μž‘μ—… λ‹¨μœ„', 즉 브랜치둜 κ·Έ μž‘μ—…μ˜ 기둝을 쀑간 쀑간에 λ‚¨κΈ°κ²Œ λ˜λ―€λ‘œ λ¬Έμ œκ°€ λ°œμƒν–ˆμ„ 경우 원인이 λ˜λŠ” μž‘μ—…μ„ μ°Ύμ•„λ‚΄κ±°λ‚˜ 그에 λ”°λ₯Έ λŒ€μ±…μ„ μ„Έμš°κΈ° 쉬어진닀.

πŸͺ„master 브랜치

μ €μž₯μ†Œλ₯Ό 처음 λ§Œλ“€λ©΄, Git은 λ°”λ‘œ 'master'λΌλŠ” μ΄λ¦„μ˜ 브랜치λ₯Ό λ§Œλ“€μ–΄ λ‘”λ‹€. 이 μƒˆλ‘œμš΄ μ €μž₯μ†Œμ— μƒˆλ‘œμš΄ νŒŒμΌμ„ μΆ”κ°€ ν•œλ‹€κ±°λ‚˜ μΆ”κ°€ν•œ 파일의 λ‚΄μš©μ„ λ³€κ²½ν•˜μ—¬ κ·Έ λ‚΄μš©μ„ μ €μž₯(컀밋,Commit)ν•˜λŠ” 것은 λͺ¨λ‘ 'master'λΌλŠ” μ΄λ¦„μ˜ 브랜치λ₯Ό 톡해 μ²˜λ¦¬ν•  수 μžˆλŠ” 일이 λœλ‹€.

'master'κ°€ μ•„λ‹Œ 또 λ‹€λ₯Έ μƒˆλ‘œμš΄ 브랜치λ₯Ό λ§Œλ“€μ–΄μ„œ 'μ΄μ œλΆ€ν„° 이 브랜치λ₯Ό μ‚¬μš©ν• κ±°μ•Ό!'라고 μ„ μ–Έ(체크아웃,checkout)ν•˜μ§€ μ•ŠλŠ” 이상, 이 λ•Œμ˜ λͺ¨λ“  μž‘μ—…μ€ 'master' λΈŒλžœμΉ˜μ—μ„œ 이루어 μ§„λ‹€.

https://backlog.com/git-tutorial/kr/stepup/stepup1_1.html


πŸͺ„Pull Request

λ‚΄κ°€ μˆ˜μ •ν•œ μ½”λ“œκ°€ μžˆμœΌλ‹ˆ λ‚΄ branchλ₯Ό κ°€μ Έκ°€ κ²€ν†  ν›„ 병합 해주라고 μš”μ²­ν•˜λŠ” 것이닀. PR을 톡해 μ½”λ“œ μΆ©λŒμ„ μ΅œμ†Œν™” ν•  수 있고 Push κΆŒν•œμ΄ μ—†λŠ” μ˜€ν”ˆ μ†ŒμŠ€ ν”„λ‘œμ νŠΈμ— κΈ°μ—¬ν•  λ•Œ 많이 μ‚¬μš©ν•œλ‹€.

Pull Request image


✏️ 간단 μš©μ–΄ 정리

Fork : λ ˆνŒŒμ§€ν† λ¦¬λ₯Ό 원격저μž₯μ†Œμ— 볡사

Clone : λ ˆνŒŒμ§€ν† λ¦¬λ₯Ό λ‘œμ»¬μ €μž₯μ†Œμ— 볡사

원격저μž₯μ†Œ : 원격저μž₯μ†Œλž€ μΈν„°λ„·μ΄λ‚˜ λ„€νŠΈμ›Œν¬ μ–΄λ”˜κ°€μ— μžˆλŠ” μ €μž₯μ†Œμ΄λ‹€.


❗️Git Error λͺ¨μŒ

πŸ“Œ μ •λ°©ν–₯이 λΆˆκ°€λŠ₯ν•˜λ―€λ‘œ, μ€‘μ§€ν•©λ‹ˆλ‹€.

λ°œμƒ 원인 μ½”λ“œ : git pull origin master

상황 : λ…ΈνŠΈλΆμ„ λ§₯뢁으둜 κ΅μ²΄ν•˜λ©΄μ„œ κΉƒν—ˆλΈŒμ— μžˆλŠ” λ ˆνŒŒμ§€ν† λ¦¬λ“€μ„ λ§₯뢁에 ν΄λ‘ ν•˜μ—¬ ν΄λ‘ ν•œ 둜컬 ν”„λ‘œμ νŠΈλ₯Ό κ°•μ œλ‘œ pull을 ν•˜μ—¬ λ‘œμ»¬μ €μž₯μ†Œμ™€ 원격저μž₯μ†Œλ₯Ό μ΄μ–΄μ£Όμ—ˆλ‹€. ν•˜μ§€λ§Œ, λ‘œμ»¬μ €μž₯μ†Œμ—μ„œ μ»€λ°‹ν•˜κ³  원격저μž₯μ†Œμ— μ •μƒμ μœΌλ‘œ pushκ°€ κ°€λŠ₯ν•˜μ§€λ§Œ 원격 μ €μž₯μ†Œμ—μ„œλŠ” 컀밋 μ‹œ μ—λŠ” λ‘œμ»¬μ €μž₯μ†Œμ—μ„œ pull을 ν•˜λ©΄ μ—λŸ¬κ°€ λ°œμƒν•œλ‹€.

해결방법 :

https://velog.io/@roong-ra/Git-μ—λŸ¬-Fatal-μ •λ°©ν–₯이-λΆˆκ°€λŠ₯ν•˜λ―€λ‘œ-μ€‘μ§€ν•©λ‹ˆλ‹€

git rebaseλž€?

https://seosh817.tistory.com/240

git pull μ΄λž€?

https://backlog.com/git-tutorial/kr/stepup/stepup3_1.html

git clone ν›„ λ‹€μ‹œ git pushν•˜κΈ°

https://oddcode.tistory.com/99

git 원격 master branch κ°•μ œ pull ν•˜κΈ°

https://soulmatt.tistory.com/entry/git-원격-master-branch-κ°•μ œ-pull-ν•˜κΈ°

profile
μ˜€λŠ˜λ³΄λ‹¨ 내일이 κ°•ν•œ κ°œλ°œμžμž…λ‹ˆλ‹€!!πŸ§‘πŸ»β€πŸ’»

0개의 λŒ“κΈ€