Home > Archive > TIL > πŸ“ [TIL] 240415 Today I Learned.

πŸ“ [TIL] 240415 Today I Learned.
TIL

1. λ¦¬λˆ…μŠ€ λͺ…λ Ήμ–΄

  • pwd(print working directory)

    ~ 은 Homeμ΄λΌλŠ” 경둜

  • ls(list): λ‚΄ 폴더 μ•ˆμ— μžˆλŠ” 폴더 & 파일 내역을 λ³΄μ—¬μ€Œ
  • la -a(list all): μˆ¨κ²¨μ§„ 파일(보톡 .으둜 μ‹œμž‘ν•¨)도 λͺ¨λ‘ λ³Ό 수 있음
  • cd 폴더λͺ…(change directory): 폴더 μœ„μΉ˜ 이동
    • ls λͺ…λ Ήμ–΄μ—μ„œ ν™•μΈλœ ν΄λ”λ‘œ 이동 κ°€λŠ₯
  • cd .. : ν•œ 단계 μœ„μ˜ ν΄λ”λΌλŠ” 뜻
  • mkdir(make directory): ν˜„μž¬ κ²½λ‘œμ—μ„œ 폴더λ₯Ό 생성
  • touch: ν˜„μž¬ κ²½λ‘œμ—μ„œ νŒŒμΌμ„ μƒμ„±ν•˜λŠ” λͺ…λ Ήμ–΄
    • μ •ν™•νžˆλŠ” 파일의 생성과 파일의 λ‚ μ§œ, μ‹œκ°„μ„ λ³€κ²½ν•˜λŠ” λͺ…λ Ήμ–΄

2.git

  • μ½”λ“œ 변경점을 κΈ°λ‘ν•˜λŠ” 것
  • 버전 관리 도ꡬ(ν˜•μƒ 관리 도ꡬ)
    • μ†Œν”„νŠΈμ›¨μ–΄μ˜ 변경사항을 μ²΄κ³„μ μœΌλ‘œ μΆ”μ ν•˜κ³  ν†΅μ œν•˜λŠ” 것

3. github

  • λ°±μ—…κ³Ό κ³΅μœ κ°€ κ°€λŠ₯ν•œ 온라인 μ½”λ“œ μ €μž₯μ†Œ
  • ν˜‘μ—…μ΄ κ°€λŠ₯ν•œ 온라인 μ½”λ“œ μ €μž₯μ†Œ

4. git ν•„μˆ˜ λͺ…λ Ήμ–΄

  1. μ½”λ“œ 관리λ₯Ό μ‹œμž‘ν•˜λŠ” λͺ…λ Ήμ–΄ - git init
    • μ΄ˆκΈ°ν™”ν•˜λ‹€, 초기 μ„ΈνŒ…ν•˜λ‹€μ˜ 쀀말
    • ν”„λ‘œμ νŠΈ μ‹œμž‘ μ „ λ”± ν•œ 번만 μž…λ ₯ν•˜λ©΄ 됨
    • μ •ν™•ν•œ ν”„λ‘œμ νŠΈ 폴더(경둜)μ—μ„œ μž…λ ₯ν•΄μ•Ό 함
  2. μ½”λ“œλ₯Ό μ €μž₯ν•˜λŠ” λͺ…λ Ήμ–΄ - git add & commit
    • git add 파일λͺ…: μ €μž₯ν•˜κΈ° μ „ μ €μž₯ν•  파일 β€œμ§€μ •β€
    • git commit -m β€œλ©”μ„Έμ§€ μž‘μ„±β€: μ‹€μ œλ‘œ νŒŒμΌμ„ β€œμ €μž₯”
  3. μ €μž₯ μ—¬λΆ€ ν™•μΈν•˜λŠ” λͺ…λ Ήμ–΄ - git status
  4. λ‚΄ ν”„λ‘œμ νŠΈμ˜ 변경사항을 ν•œ λ²ˆμ— μ§€μ •ν•˜λŠ” 법 - git add .

    working directory, staging area, repository에 λŒ€ν•΄μ„œ μ•Œμ•„λ΄…μ‹œλ‹€.

  5. μ €μž₯ 내역을 ν™•μΈν•˜λŠ” λͺ…λ Ήμ–΄ - git log
    • 컀밋 λ©”μ‹œμ§€λ‘œ μ½”λ“œ 변경점 μΆ”μΈ‘ κ°€λŠ₯
    • git diff μ½”λ“œ λ³€κ²½ 확인
    • git reset 과거둜 λŒμ•„κ°€κΈ° κ°€λŠ₯
  6. λ³€κ²½ 사항을 원격 μ €μž₯μ†Œ(예: githubλ“±)에 μ—…λ‘œλ“œ ν•˜λŠ” λͺ…λ Ήμ–΄ - git push
    • git push <원격 μ €μž₯μ†Œ 이름> <브랜치 이름>
      • git push origin main
  7. 원격 μ €μž₯μ†Œμ˜ λ‚΄μš©μ„ λ³΅μ‚¬ν•˜μ—¬ μƒˆλ‘œμš΄ 둜컬 μ €μž₯μ†Œλ₯Ό μƒμ„±ν•˜λŠ” 데 μ‚¬μš©ν•˜λŠ” λͺ…λ Ήμ–΄ - git clone
    • μƒˆλ‘œμš΄ ν”„λ‘œμ νŠΈμ— μ°Έμ—¬ν•˜κ±°λ‚˜ κΈ°μ‘΄ ν”„λ‘œμ νŠΈμ˜ μ†ŒμŠ€ μ½”λ“œλ₯Ό 둜컬 μ»΄ν“¨ν„°λ‘œ κ°€μ Έμ˜€κ³  싢을 λ•Œ μ‚¬μš©.
    • 원격 μ €μž₯μ†Œμ˜ λͺ¨λ“  파일, 디렉터리, 버전 기둝을 ν¬ν•¨ν•©λ‹ˆλ‹€. 이λ₯Ό 톡해 원격 μ €μž₯μ†Œμ˜ μ •ν™•ν•œ 볡사본을 λ‘œμ»¬μ— 생성할 수 μžˆμŠ΅λ‹ˆλ‹€.
    • 원격 μ €μž₯μ†Œμ— μ„€μ •λœ 브랜치, 원격 좔적 정보 등이 μžλ™μœΌλ‘œ μ„€μ •λ©λ‹ˆλ‹€. μ΄λŠ” λ‘œν„Έμ—μ„œ μž‘μ—…μ„ μ‹œμž‘ν•˜κΈ° μœ„ν•΄ ν•„μš”ν•œ 초기 섀정을 κ°„μ†Œν™”ν•©λ‹ˆλ‹€.
    • git clone <원격 μ €μž₯μ†Œ URL>
    • νŠΉμ • 브랜치 클둠: git clone -b <브랜치 이름> <원격 μ €μž₯μ†Œ URL>
  8. 원격 μ €μž₯μ†Œμ—μ„œ μ΅œμ‹  변경사항을 κ°€μ Έμ™€μ„œ ν˜„μž¬ 둜컬 λΈŒλžœμΉ˜μ™€ λ³‘ν•©ν•˜λŠ” 데 μ‚¬μš©ν•˜λŠ” λͺ…λ Ήμ–΄ - git pull
    • 이 λͺ…령은 git fetch와 git merge 두 λ‹¨κ³„μ˜ μž‘μ—…μ„ ν•œ λ²ˆμ— μˆ˜ν–‰ν•©λ‹ˆλ‹€.
    • 이 λͺ…λ Ήμ–΄μ˜ μ‚¬μš©μ€ 특히 νŒ€ ν™˜κ²½μ—μ„œ λ‹€λ₯Έ μ‚¬λžŒλ“€μ˜ μž‘μ—…μ„ μ§€μ†μ μœΌλ‘œ 둜컬 ν™˜κ²½μ— 톡합할 ν•„μš”κ°€ μžˆμ„ λ•Œ 맀우 μœ μš©ν•©λ‹ˆλ‹€.
      • μžμ„Ένžˆ μ„€λͺ…
          1. β€˜git fetch’ 단계 : 이 λ‹¨κ³„μ—μ„œλŠ” 원격 μ €μž₯μ†Œμ˜ μ΅œμ‹  데이터λ₯Ό 둜컬 μ €μž₯μ†Œλ‘œ κ°€μ Έμ˜€μ§€λ§Œ, ν˜„μž¬ μž‘μ—… 쀑인 둜컬 λΈŒλžœμΉ˜μ—λŠ” μžλ™μœΌλ‘œ λ³‘ν•©λ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 원격 μ €μž₯μ†Œμ˜ 변경사항은 둜컬의 원격 좔적 λΈŒλžœμΉ˜μ— μ €μž₯λ©λ‹ˆλ‹€.
          1. β€˜git merge’ 단계 : β€˜git fetch’ 둜 κ°€μ Έμ˜¨ 변경사항을 ν˜„μž¬ μž‘μ—… 쀑인 λΈŒλžœμΉ˜μ™€ λ³‘ν•©ν•©λ‹ˆλ‹€. 이 병합 과정을 톡해 둜컬 μ½”λ“œλ² μ΄μŠ€μ— 원격 μ €μž₯μ†Œμ˜ μ΅œμ‹  변경사항이 λ°˜μ˜λ©λ‹ˆλ‹€.
    • git pull <원격 μ €μž₯μ†Œ 이름> <브랜치 이름>
    • 예λ₯Ό λ“€μ–΄, 원격 μ €μž₯μ†Œ origin의 main λΈŒλžœμΉ˜μ—μ„œ μ΅œμ‹  변경사항을 κ°€μ Έμ˜€κ³  μ‹Άλ‹€λ©΄ λ‹€μŒ λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
      • git pull origin main
    • μ£Όμ˜μ‚¬ν•­ 및 ν™œμš© 팁
      • μžλ™ 병합 좩돌 : git pull 을 μ‹€ν–‰ν•  λ•Œ λ‘œμ»¬μ—μ„œ 아직 μ»€λ°‹λ˜μ§€ μ•Šμ€ 변경사항이 μžˆλ‹€λ©΄, μ›κ²©μ˜ 변경사항과 좩돌이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 경우, Git은 μ‚¬μš©μžμ—κ²Œ μΆ©λŒμ„ ν•΄κ²°ν•˜κ³  컀밋할 것을 μš”μ²­ν•©λ‹ˆλ‹€.
      • λͺ…μ‹œμ μΈ 병합 μ˜΅μ…˜ μ‚¬μš© : 병합 방식을 μ œμ–΄ν•˜κ³  싢을 λ•ŒλŠ” ’–rebase’ μ˜΅μ…˜μ„ μ‚¬μš©ν•˜μ—¬ κΈ°μ‘΄ 컀밋 μœ„μ— 원격 변경사항을 μž¬λ°°μΉ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” 컀밋 νžˆμŠ€ν† λ¦¬λ₯Ό 더 κΉ”λ”ν•˜κ²Œ μœ μ§€ν•˜λŠ” 데 도움을 μ€λ‹ˆλ‹€.