😈 git

YeonnΒ·2024λ…„ 9μ›” 3일
0

git

λͺ©λ‘ 보기
1/2
post-thumbnail

πŸ“–Β git ?

πŸ‹ git νŠΉμ§•?

  • λΆ„μ‚°ν˜• 버전 관리 μ‹œμŠ€ν…œ( 쀑앙 관리 X )
  • 병렬 μž‘μ—… κ°€λŠ₯
  • 가볍고 λΉ λ₯΄λ‹€ !
  • 데이터 보μž₯
  • Staging area( μ€€λΉ„ μ˜μ—­ )
  • μ˜€ν”ˆ μ†ŒμŠ€

❓ git μ„€μΉ˜ 및 확인

  • Terminal β†’ git

  • μœ„μ™€ 같이 μ‹€ν–‰λ˜μ§€ μ•Šμ„ 경우 https://git-scm.com/downloadsμ—μ„œ λ‹€μš΄ !
  • Teminal β†’ git --version: git 버전 ν™•μΈν•˜κΈ°

❓ git 초기 μ„€μ •

βœ”οΈΒ μ‚¬μš©μž μ„€μ •

  • Teminal β†’ git config --global [user.name](http://user.name) 'username'
  • Teminal β†’ git config --global [user.](http://user.name)email [ email adress ]
    • μ €μž₯μ†Œμ— μ½”λ“œλ₯Ό λ°˜μ˜ν•  λ•Œ 등둝될 μ‚¬μš©μž 정보 μ„€μ •
    • --global 없이 git config [user.name](http://user.name) 처럼 μž‘μ„± μ‹œ ν”„λ‘œμ νŠΈ λ§ˆλ‹€ μƒˆλ‘œ μ§€μ • ν•„μš”

βœ”οΈΒ μ„€μ • 정보 확인

  • Terminal β†’ git config --list
    • 이전에 μ„€μ •ν•œ λ‚΄μš© ν™•μΈν•˜κΈ°

❓ git life cycle

πŸ‹

  • untracked - unmodified - modified - staged
  • init - add - commit / log

βœ”οΈΒ git status

  • untracked: Git이 μΆ”μ ν•˜μ§€ μ•ŠλŠ” 파일, add 둜 staging λ˜μ§€ μ•Šμ•˜κ³ , 아직 commitλ˜μ§€ μ•Šμ€ μƒνƒœ
  • unmodified: λ³€κ²½ 사항이 μ—†λŠ” μƒνƒœ, 즉 λ§ˆμ§€λ§‰ 컀밋 이후 파일이 μˆ˜μ •λ˜μ§€ μ•ŠμŒ
  • modified: commit된 파일 쀑 μˆ˜μ •λœ μƒνƒœ, add λͺ…λ Ήμ–΄λ‘œ stagingλ˜μ§€ μ•ŠμŒ
  • staged: add λͺ…λ Ήμ–΄λ‘œ staging area에 올라온 μƒνƒœ, λ‹€μŒ 컀밋에 포함될 μ€€λΉ„κ°€ 됨

βœ”οΈΒ git command

  • git init: ν˜„μž¬ 디렉토리λ₯Ό git repository둜 μ„€μ •
  • git add: νŒŒμΌμ„ μ€€λΉ„ μ˜μ—­μœΌλ‘œ 보내기, option λ°˜λ“œμ‹œ μ§€μ • !
    • git add .: ν•΄λ‹Ή 디렉토리 λ‚΄ λͺ¨λ“  λ³€κ²½ 파일 ν¬ν•¨ν•˜λŠ” μ˜΅μ…˜
    • git add [file_name]: ν•΄λ‹Ή 파일 1개의 λ³€κ²½ λ‚΄μ—­λ§Œ 포함
    • git reset [file_name]: add λͺ…λ Ή μ·¨μ†Œν•˜κΈ°
    • git restore --staged [file_name]: add λͺ…λ Ή μ·¨μ†Œν•˜κΈ°
    • git reset HEAD: staging 파일 λͺ¨λ‘ μ·¨μ†Œ
  • git status: staging area의 μ–΄λ–€ 파일이 λ³€κ²½λ˜μ—ˆλŠ”μ§€ λ“± 파일의 μƒνƒœ 확인
  • git commit: 무엇을 μˆ˜μ •ν•˜κ³  μΆ”κ°€ν–ˆλŠ”μ§€ λ©”μ‹œμ§€λ₯Ό 남기고 μ €μž₯μ†Œμ— μ €μž₯
    • git commit: 컀밋 λ©”μ‹œμ§€λ₯Ό μž…λ ₯ν•˜λŠ” 에디터가 μ—΄λ¦Ό
    • git commit -m 'message': message 뢀뢄에 컀밋 λ©”μ‹œμ§€λ₯Ό λͺ…령어에 직접 μ§€μ •
    • λ©”μ‹œμ§€λŠ” μƒλž΅ κ°€λŠ₯ν•˜λ‚˜ μΆ”ν›„ 반영 λ‚΄μš©μ„ μ•Œ 수 μžˆλ„λ‘ 적절 λ©”μ‹œμ§€λ₯Ό 남기도둝 ν•˜μž !
    • git commit --amend: μ΄μ „μ˜ λ©”μ‹œμ§€μ— μ˜€νƒ€λ‚˜ λˆ„λ½μ΄ μžˆμ„ 경우 μ •μ •ν•˜λŠ” λͺ…λ Ήμ–΄
      • vi λ¬Έμ„œνŽΈμ§‘κΈ°λž‘ λ™μΌν•˜κ²Œ μˆ˜μ • κ°€λŠ₯
  • git log: μ €μž₯μ†Œ 반영 λ‚΄μ—­ 확인

❓ git branch

πŸ‹ λ…λ¦½μ μœΌλ‘œ μ–΄λ–€ μž‘μ—…μ„ μ§„ν–‰ν•˜κΈ° μœ„ν•œ κ°œλ…μœΌλ‘œ λ‹€λ₯Έ Branch의 영ν–₯을 λ°›μ§€ μ•ŠμŒ

  • main/ master branch: 배포할 수 μžˆλŠ” μˆ˜μ€€μ˜ μ•ˆμ •μ μΈ branch
  • topic branch: κΈ°λŠ₯ μΆ”κ°€λ‚˜ 버그 μˆ˜μ •κ³Ό 같은 λ‹¨μœ„ μž‘μ—…μ„ μœ„ν•œ branch
  • git branch: ν˜„μž¬ 브랜치 확인
  • git branch [branch_name]: 브랜치 생성
  • git checkout [branch_name]: 브랜치 μ „ν™˜
  • git checkout -b [branch_name]: 브랜치 생성 ν›„ ν•΄λ‹Ή 브랜치둜 μ „ν™˜

βœ”οΈΒ git merge

  • git merge [branch_name]: 브랜치 병합
    • μ΅œμ’… λ³‘ν•©λœ 사항을 κ°€μ§ˆ 브랜치둜 이동 ν›„ λ³‘ν•©ν•˜λ € ν•˜λŠ” λŒ€μƒ 브랜치 λͺ… μž…λ ₯
    • git branch --merged: λ³‘ν•©λœ 브랜치 확인
    • git branch -d [branch_name]: μ‚¬μš©μ„ 마친 브랜치 μ‚­μ œ
    • git merge --abort: 병합 μ·¨μ†Œ
    • git commit -a -m 'message': message 뢀뢄에 λ©”μ‹œμ§€λ₯Ό λͺ…령어에 직접 μž‘μ„±, 병합 μ·¨μ†Œ

❓ git conflict

πŸ‹ conflict ν•΄κ²°ν•˜κΈ°

  • 좩돌이 μΌμ–΄λ‚œ 파일의 λ‚΄μš© μˆ˜μ • ν›„ <<<<<<<, =======, >>>>>>> κ°€ ν¬ν•¨λœ ν–‰ μ‚­μ œ
  • git add, git commit 과정을 거쳐 λ‹€μ‹œ git merge μˆ˜ν–‰ !

❓ git repository

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

βœ”οΈΒ git clone

  • git clone [repository_name] [repository_url]: 원격 μ €μž₯μ†Œ λ‚΄μš© 볡사
    • [repository_name]: 볡사해 올 원격 μ €μž₯μ†Œμ˜ 이름
      • μƒλž΅ κ°€λŠ₯
      • μƒλž΅ μ‹œ 원격 μ €μž₯μ†Œ μ΄λ¦„μœΌλ‘œ 폴더가 생성
    • [repository_url]: 볡사할 원격 μ €μž₯μ†Œμ˜ URL

βœ”οΈΒ git remote

  • git remote add [repository_name] [repository_url]: 둜컬 μ €μž₯μ†Œμ— 원격 μ €μž₯μ†Œ μ—°κ²°
  • git remote -v: μ§€μ •λœ μ €μž₯μ†Œμ˜ 이름과 μ£Όμ†Œ 확인

βœ”οΈΒ git pull git fetch

  • git pull: 원격 μ €μž₯μ†Œμ—μ„œ 데이터 κ°€μ Έμ˜€κΈ° ( + merge κ°œλ… )
  • git pull [repository_name] [branch_name]:
  • git fetch: 원격 μ €μž₯μ†Œμ—μ„œ 데이터 κ°€μ Έμ˜€κΈ° ( 진행쀑인 μž‘μ—… 마무리 ν›„ λ³‘ν•©ν•„μš” )

βœ”οΈΒ git push

  • git push [repository_name] [branch_name]: 둜컬 μ €μž₯μ†Œ μž‘μ—… λ‚΄μš© 원격 μ €μž₯μ†Œμ— 반영

0개의 λŒ“κΈ€