Git 브랜치 & 협업 정리 🛠️

jjyu_my·2025년 2월 16일
0

Git & GitHub

목록 보기
8/8
post-thumbnail

👩🏻‍💻 지금까지는 혼자 또는 소규모 프로젝트를 진행해서 기본적인 commit, push만 사용해도 충분했다. 하지만 회사에서 협업을 하게 되면 여러 사람이 동시에 작업하게 되고, 무분별한 커밋과 푸시는 큰 문제가 될 수 있다. 그래서 커밋 개념을 다시 한번 훑어보고 정리해 보았다!


🌿 브랜치 생성 및 전환

브랜치를 사용하면 메인 코드에 영향을 주지 않고 독립적인 작업이 가능하다

🔹 브랜치 생성: git branch 브랜치명
🔹 브랜치 전환: git switch 브랜치명
🔹 현재 브랜치 상태 확인: git status
🔹 메인 브랜치로 돌아가기: git switch main


🔀 브랜치 병합 (Merge)

기능 개발이 끝나면 브랜치를 메인 브랜치에 병합해야한다

1️⃣ 메인 브랜치로 이동: git switch main
2️⃣ 브랜치 병합: git merge 브랜치명

⚠️ 충돌 발생 시

✔️ 원하는 코드만 남기고 수정
✔️ git add . 후 git commit

🗑 작업이 끝난 브랜치 삭제

✔️ 병합된 브랜치 삭제: git branch -d 브랜치명
✔️ 병합되지 않은 브랜치 강제 삭제: git branch -D 브랜치명


🔄 Rebase (리베이스)

Rebase는 브랜치의 시작점을 메인 브랜치의 최신 커밋으로 옮겨서 깔끔한 히스토리를 유지하는 방법

1️⃣ 작업 브랜치로 이동: git switch 브랜치명
2️⃣ 최신 커밋으로 브랜치 이동: git rebase main
3️⃣ 메인 브랜치로 이동: git switch main
4️⃣ 병합 수행: git merge 브랜치명

⚠️ Rebase 중 충돌 발생 시 하나씩 해결해야 하므로 브랜치 차이가 많을 경우 주의!


📌 Squash and Merge

여러 개의 커밋을 하나로 합쳐서 메인 브랜치에 병합할 때 사용

1️⃣ 메인 브랜치로 이동: git switch main
2️⃣ 커밋을 하나로 합침: git merge --squash 브랜치명
3️⃣ 하나의 커밋으로 저장: git commit -m "브랜치 합침"


🔙 커밋 되돌리기

✔️ 특정 파일 복구: git revert 파일명
✔️ 특정 커밋 취소: git reset 커밋아이디
✔️ 최근 커밋 취소: git revert HEAD
✔️ 개별 파일 변경 취소: git restore 파일명


☁️ 원격 저장소에 브랜치 올리기

팀원과 공유하기 위해 로컬 브랜치를 원격 저장소로 올릴 수 있다

1️⃣ 브랜치 생성 및 작업

git branch 브랜치명  
git switch 브랜치명  
git add .  
git commit -m "커밋 메시지"

2️⃣ 원격 저장소에 브랜치 업로드

git push origin 브랜치명

📩 Pull Request (PR)

팀원들과 코드 리뷰를 진행한 후 병합하기 위해 PR을 생성

1️⃣ **GitHub에서 Pull Request 생성

  • 팀원들이 코드 리뷰 후 병합 가능

2️⃣ Merge 방법 선택

📝 Create a merge commit: 모든 커밋 기록 유지

  • 새로운 merge commit을 하나 생성해주는 3-way merge를 실행
  • main 브랜치 조회시 합쳐진 브랜치의 commit 내역도 전부 나옴
  • 단점 : commit 내역이 많으면 복잡하고 더러워 보일수 있다

🔄 Rebase and merge: 브랜치를 최신 상태로 맞춘 후 병합

  • squash and merge와 비슷한데 합쳐질 브랜치의 commit 내역이 전부 보존

📦 Squash and merge: 여러 커밋을 하나로 합쳐 병합 (히스토리 단순화)

  • 합쳐질 브랜치의 commit 내역을 하나로 합쳐서 main 브랜치에 신규 commit을 생성
  • 깔끔함

💡 추가로 알아두면 좋은것!!!!

🔄 Git Stash (임시 저장)

작업 도중에 변경한 파일을 임시로 저장하고, 다른 작업을 해야 할 때 유용
즉!! 임시보관장소 라고 생각하면 쉽다

🔹 변경 사항 임시 저장:

  • 변경된 모든 파일을 임시로 저장
git stash

🔹 변경 사항 임시 저장 시 메모 남기고싶으면? :

git stash save '어쩌구저쩌구~'

🔹 저장된 변경 사항 확인: git stash 는 여러번 할수있다

  • 현재 stash 되어있는 코드 목록을 전부 출력해주는명령어
git stash list

🔹 보관했던 코드 다시 불러오기

  • git stash 했던 코드가 여러개 있으면 가장 최근에 보관했던 코드부터 먼저 불러온다
git stash pop

🔹 stash 삭제

  • 특정스태시 삭제
  • 삭제할id 는 git stash list하면 0,1,2 식으로 숫자가 보임!!
git stash drop 삭제할id
  • 전체 스태시 삭제
git stash clear

👩🏻‍💻 git stash는 주석처리나 브랜치 만들어서 따로 보관하는게 더 효율적이긴하다..ㅎㅎ^^그래도 알아두면 좋으니까~

profile

0개의 댓글