[TIL] 협업을 위한 GIT 명령어

Eden·2024년 10월 23일
0

TIL

목록 보기
25/41
post-thumbnail



  1. 단 제일 중요한 것은 뭘 어떻게 해야할 지 모르겠으면 동료에게 도움을 요청하자.













기본 명령어 추가

1. 현재 상태 및 커밋 정보

git status  # 현재 브랜치 및 스테이징 파일 상태 확인
git describe  # 가장 가까운 태그 기준 커밋 위치 설명

2. 태그 관리

git tag <태그 이름>  # 특정 커밋에 태그 추가
git push origin <태그 이름>  # 태그를 원격 저장소에 업로드

커밋 되돌리기

1. git reset (커밋 삭제)

  • 특정 커밋 시점으로 로컬 저장소를 되돌림. 히스토리를 삭제
git reset <커밋 해시>
  • 예시
    • git reset A: Commit A로 돌아가며 이후 커밋 B, C 삭제

2. git revert (커밋 취소)

  • 기존 커밋을 취소하는 새로운 커밋을 생성하여 히스토리를 보존함.
git revert <커밋 해시>  # 특정 커밋만 취소
git revert <해시 시작>..<해시 끝>  # 여러 커밋 되돌리기

충돌(Conflict) 해결

  • 동일한 파일의 같은 라인을 여러 명이 수정하면 충돌 발생

충돌 해결 예시

<<<<<<< HEAD
(현재 브랜치의 내용)
=======
(병합하려는 브랜치의 내용)
>>>>>>
  1. 원하는 내용으로 수정
  2. git addgit commit으로 충돌 해결 완료

협업 시 유용한 팁

1. Commit 컨벤션

  • 커밋 메시지 형식:
    • feat: 새로운 기능 추가

    • fix: 버그 수정

    • docs: 문서 수정

    • style: 코드 스타일 변경

    • refactor: 리팩토링 수행

    • test: 테스트 코드 작성

      (이 외에도 많은 방법이 있고, 팀과 논의 후 컨벤션을 정해서 사용하면 된다. 나는 깃모지도 좋아🚀 :)

  • 구성: 제목, 본문(선택), 꼬리말(선택)
    • 제목은 50자 이내로 작성, 본문은 줄당 72자 이하 (라는데 이것도 동료들과 얘기해보아요:)

2. Pull Request (PR) 활용

  • PR을 통해 작업 내용을 검토받고 머지(Merge)
  • 팀원 검토 후 Approve 후 병합 가능

(꼭 검토하삼 안그럼 큰일 나유)

3. gitignore 사용

  • .gitignore 파일로 추적할 필요 없는 파일 제외
# 특정 디렉토리 무시
Pods/

# 특정 파일 무시
.DS_Store

# 특정 확장자 무시
*.log

4. 충돌 최소화 전략

  • 자주 Pull 받아 최신 상태 유지
  • 작은 단위의 작업을 자주 커밋 및 병합
  • 핵심 파일 수정 시 브랜치 나누기

git fetch vs. git pull

  • git fetch: 원격 저장소의 변경 사항을 가져오지만 병합하지 않음
  • git pull: 원격 저장소의 변경 사항을 가져와 자동으로 병합

정리된 브랜치 관리 명령어

git branch  # 브랜치 목록 확인
git branch <새 브랜치>  # 새 브랜치 생성
git switch <브랜치>  # 브랜치 전환 (이전: `git checkout`)
git branch -d <브랜치>  # 브랜치 삭제

.DS_Store 삭제 방법 (macOS)

find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

profile
Just living the daydream, one moment at a time.
post-custom-banner

0개의 댓글