[Git] κΉƒ(Git)을 ν™œμš©ν•œ ν˜‘μ—… 방법

Posted by Euisuk's Dev Log on May 2, 2023

[Git] κΉƒ(Git)을 ν™œμš©ν•œ ν˜‘μ—… 방법

원본 κ²Œμ‹œκΈ€: https://velog.io/@euisuk-chung/κΉƒGit을-ν™œμš©ν•œ-ν˜‘μ—…-방법

κΉƒ(Git)을 ν™œμš©ν•œ ν˜‘μ—… 방법

깃은 λΆ„μ‚° 버전 관리 μ‹œμŠ€ν…œμœΌλ‘œ, λ‹€μ–‘ν•œ ν˜•νƒœμ˜ ν˜‘μ—… 방식을 μ§€μ›ν•©λ‹ˆλ‹€. 깃을 ν™œμš©ν•˜μ—¬ ν”„λ‘œμ νŠΈλ₯Ό κ³΅μœ ν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.

κΉƒμ˜ ν˜‘μ—… 방법

1. Pull Request(ν’€ λ¦¬ν€˜μŠ€νŠΈ)

깃은 Pull Request κΈ°λŠ₯을 μ œκ³΅ν•˜μ—¬, κ°œλ°œμžλ“€μ΄ λ‹€λ₯Έ κ°œλ°œμžλ“€μ˜ λ³€κ²½ 내역을 κ²€ν† ν•˜κ³ , 이λ₯Ό λ¨Έμ§€(merge)ν•˜μ—¬ ν”„λ‘œμ νŠΈμ— λ°˜μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

1
2
3
4
5
6
7
8
9
10
11
12
1. 브랜치 생성
$ git branch [브랜치 이름]

2. λ³€κ²½ λ‚΄μ—­ 컀밋
$ git add [λ³€κ²½λœ 파일]
$ git commit -m "[컀밋 λ©”μ‹œμ§€]"

3. 원격 μ €μž₯μ†Œμ— ν‘Έμ‹œ
$ git push origin [브랜치 이름]

4. Pull Request 생성
GitHub, GitLab λ“±μ—μ„œ Pull Request 생성

2. Merge(병합)

Pull Requestκ°€ 승인되면, λ³€κ²½ 내역을 μ›λž˜ λΈŒλžœμΉ˜μ— λ³‘ν•©ν•˜λŠ” Merge μž‘μ—…μ„ μˆ˜ν–‰ν•©λ‹ˆλ‹€.

1
2
$ git checkout [μ›λž˜ 브랜치]
$ git merge [브랜치 이름]

3. Fork(포크)

κ°œλ°œμžκ°€ λ‹€λ₯Έ 개발자의 ν”„λ‘œμ νŠΈλ₯Ό 직접 μˆ˜μ •ν•  수 μžˆλŠ” λ°©λ²•μœΌλ‘œ, 포크 κΈ°λŠ₯을 μ‚¬μš©ν•©λ‹ˆλ‹€. ν¬ν¬ν•œ ν”„λ‘œμ νŠΈλ₯Ό μˆ˜μ •ν•œ ν›„, Pull Requestλ₯Ό 보내 원본 ν”„λ‘œμ νŠΈμ— λ³€κ²½ 내역을 λ°˜μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

1
2
3
4
5
6
7
8
9
10
11
12
1. ν¬ν¬ν•œ ν”„λ‘œμ νŠΈ Clone
$ git clone [ν¬ν¬ν•œ μ €μž₯μ†Œ URL]

2. λ³€κ²½ λ‚΄μ—­ 컀밋
$ git add [λ³€κ²½λœ 파일]
$ git commit -m "[컀밋 λ©”μ‹œμ§€]"

3. ν¬ν¬ν•œ 원격 μ €μž₯μ†Œμ— ν‘Έμ‹œ
$ git push origin [브랜치 이름]

4. 원본 μ €μž₯μ†Œμ— Pull Request 생성
GitHub, GitLab λ“±μ—μ„œ Pull Request 생성

깃을 ν™œμš©ν•œ ν”„λ‘œμ νŠΈ κ³΅μœ μ™€ 관리

깃을 ν™œμš©ν•˜μ—¬ ν”„λ‘œμ νŠΈλ₯Ό κ³΅μœ ν•˜κ³  κ΄€λ¦¬ν•˜κΈ° μœ„ν•΄μ„œλŠ” 원격 μ €μž₯μ†Œλ₯Ό μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€. λŒ€ν‘œμ μœΌλ‘œ GitHub, GitLab, Bitbucket 등이 있으며, 이λ₯Ό 톡해 ν”„λ‘œμ νŠΈλ₯Ό κ³΅μœ ν•˜κ³  ν˜‘μ—…ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

κΉƒμ˜ ν˜‘μ—… μ‹œ λ°œμƒν•  수 μžˆλŠ” 문제점과 ν•΄κ²° 방법

깃을 ν™œμš©ν•œ ν˜‘μ—… μ‹œ, μΆ©λŒμ΄λ‚˜ 잘λͺ»λœ λ¨Έμ§€ λ“±μ˜ 문제점이 λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ•„λž˜μ™€ 같은 방법을 μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

1. 좩돌 ν•΄κ²°

  • 좩돌이 λ°œμƒν•œ νŒŒμΌμ„ μˆ˜μ •ν•˜μ—¬ μΆ©λŒμ„ ν•΄κ²°ν•©λ‹ˆλ‹€.
  • λ³€κ²½ 내역을 λ‹€μ‹œ μ»€λ°‹ν•˜κ³ , Push ν•©λ‹ˆλ‹€.

2. λ¨Έμ§€ μ·¨μ†Œ

  • λ¨Έμ§€κ°€ 잘λͺ»λ˜μ—ˆμ„ 경우, λ¨Έμ§€λ₯Ό μ·¨μ†Œν•©λ‹ˆλ‹€.
  • git reset --hard [컀밋 ID] λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ ν•΄λ‹Ή 컀밋 ID둜 λŒμ•„κ°‘λ‹ˆλ‹€.
  • λ³€κ²½ 내역을 λ‹€μ‹œ μ»€λ°‹ν•˜κ³ , Push ν•©λ‹ˆλ‹€.

3. 이전 λ²„μ „μœΌλ‘œ 되돌리기

  • 이전 λ²„μ „μœΌλ‘œ 되돌리렀면, git log λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ 되돌리고자 ν•˜λŠ” 컀밋 IDλ₯Ό ν™•μΈν•©λ‹ˆλ‹€.
  • git reset --hard [컀밋 ID] λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ ν•΄λ‹Ή 컀밋 ID둜 λŒμ•„κ°‘λ‹ˆλ‹€.
  • λ³€κ²½ 내역을 λ‹€μ‹œ μ»€λ°‹ν•˜κ³ , Push ν•©λ‹ˆλ‹€.

4. 브랜치 μ‚­μ œ

  • 더 이상 ν•„μš”ν•˜μ§€ μ•Šμ€ 브랜치λ₯Ό μ‚­μ œν•  수 μžˆμŠ΅λ‹ˆλ‹€.
  • git branch -d [브랜치 이름] λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

κ²°λ‘ 

깃을 ν™œμš©ν•˜μ—¬ ν”„λ‘œμ νŠΈλ₯Ό κ΄€λ¦¬ν•˜κ³  ν˜‘μ—…ν•˜λŠ” 방법에 λŒ€ν•΄ μ•Œμ•„λ³΄μ•˜μŠ΅λ‹ˆλ‹€. 깃을 톡해 ν”„λ‘œμ νŠΈλ₯Ό 보닀 체계적이고 효율적으둜 관리할 수 있으며, ν˜‘μ—…μ— ν•„μš”ν•œ λ‹€μ–‘ν•œ κΈ°λŠ₯을 μ œκ³΅ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜, 깃을 μ‚¬μš©ν•˜λŠ” κ³Όμ •μ—μ„œ λ¬Έμ œκ°€ λ°œμƒν•  수 있기 λ•Œλ¬Έμ—, μ΄λŸ¬ν•œ 문제λ₯Ό 미리 μ˜ˆλ°©ν•˜κ³ , 문제 λ°œμƒ μ‹œ μ μ ˆν•œ λŒ€μ²˜ 방법을 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.



-->