Git 주요 명령어, GitHub를 활용한 협업 방법 (2)

G_NooN·2024년 1월 9일
0

이전 글 - Git 주요 명령어, GitHub를 활용한 협업 방법 (1)

Git 주요 명령어

git branch

프로젝트의 복사본을 생성함

  • git branch Branch명 : "Branch명" branch를 생성함
    • 브랜치명은 "개발하려는 기능과 관련있는 이름"으로 작명할 것
  • git branch : Local branch 현황을 보여줌
    • git branch -r : Remote branch 현황을 보여줌
    • git branch -a : 전체(Local/GitHub) branch 현황을 보여줌
    • git branch -m Branch명 : 현재 Branch의 이름을 "Branch명"으로 변경함
    • git branch -d Branch명 : "Branch명" branch를 삭제함

      Remote Branch 삭제
      : git push origin --delete Branch명

      Remote-Local Branch List 동기화
      : git fetch -p

git switch / git chekcout

작업 중인 branch를 이동함

  • git switch Branch명 또는 git checkout Branch명
    : 작업 위치를 "Branch명" branch로 변경함

  • git switch -c Branch명 또는 git checkout -b Branch명
    : "Branch명" branch를 생성하고 작업 위치를 "Branch명" branch로 변경함( -c : create / -b : branch )

차이점

  • git switch : 로컬(Local) branch 간의 이동만 가능함
  • git checkout : 로컬(Local) 및 원격(Remote(=GitHub)) branch 간의 이동이 모두 가능함

git merge

작업 중인 branch의 코드를 다른 branch로 합침
git addgit commit 이 모두 완료된 내역만 합쳐짐

순서

  1. git switch "목적지 branch" (ex. main or dev)
  2. git merge "출발지(코드를 가져올) branch"

git stash

git addgit commit 하지 못한 코드를 임시 저장함

이동할 Branch의 코드와 현재 작업 중인 코드에서 겹치는 부분이 존재하는 경우, git switch가 동작하지 않음

Your local changes to the following files would be overwritten by checkout: 
index.html
Please commit your changes or stash them before you switch branches.
  • git stash -u -m "message"
    : untracked 파일을 포함하여 commit 되지 않은 파일들을 "message"와 함께 임시 저장한다.
    • <-u> option
      : untracked 파일(ex. 새로 만든 파일)의 변경사항을 모두 임시 저장함
  • git stash list : 임시 저장된 리스트를 보여줌
  • git stash apply stash@{숫자} : stash@{숫자} 부분으로 돌아감

git reset / git revert

과거의 commit으로 돌아감
git log 를 사용하여 돌아갈 commit ID의 앞 5~6글자를 사용함 (ex. 5dc1ab)

  • git reset
    : 과거의 commit으로 완전히 돌아감
    : 해당 commit 이후의 commit들은 모두 삭제됨
    : 사용 방법
    • git reset <option> <돌아갈 commit ID>
    • [option] List
      • --soft : commit 했던 파일들을 add 완료, commit 하기 전 상태로 돌려 놓음
      • --mixed (기본값) : commit 했던 파일들을 add 하기 전 상태로 돌려 놓음
      • --hard : commit했던 파일들 중, 새로 생긴 파일을 제외하고 모두 디렉토리에서 삭제
      • HEAD~n : 현재 위치로부터 n개의 commit 을 취소 (ex. --soft HEAD~4)
      • HEAD^ : 가장 최근의 commit 을 취소 (ex. mixed HEAD^)
  • git revert
    : 돌아갈 과거의 commit 을 현재 위치의 다음 commit으로 설정함
    : 사용 방법
    • git revert <돌아갈 commit ID>

차이점

  • git reset : commit 내역이 뒤로 이동하여 기록이 삭제됨
  • git revert : commit 내역이 앞으로 이동하여 revert 기록이 추가됨

주 사용 용도

  • git reset : 되돌려야 할 commit 내역이 local에만 존재하는 경우
  • git revert : 되돌려야 할 commit 내역이 push된 경우

GitHub를 활용한 협업 방법

Pull Request

GitHub에서 merge 를 실행하는 방식

merge 를 진행하기 전, branch 간의 코드 리뷰가 가능함

사용 방법

  1. git push origin <gitHub의 Branch명>
  2. Github의 Pull Request 메뉴
  3. 목적지출발지 를 지정하여 "메시지"와 함께 Create pull request
  4. 담당자의 확인 후 이상이 없을 시 Merge pull request
  5. 최종 "메시지"와 함께 Confirm merge
  6. git pull 수행

Review

코드를 검사할 사람을 지정하여 통과/수정 여부 등의 의견을 제시하는 방식

사용 방법

  1. Pull request - File changed
  2. 리뷰할 부분 클릭Start a review
  3. 리뷰 작성 후 Submit review
  • 선택지
    • Comment(의견)
    • Approve(승인)
    • Request Changes(수정 요청)

.gitignore

git으로 관리하고 싶지 않은 파일을 작성하는 파일 (ex. 비밀번호, 확장자 등)

실전 팁

  1. Branch는 기능 별로 작은 단위로 생성할 것
  2. 일반적으로 main Branch는 배포용으로 사용함.
    테스트용 dev or develop Branch를 별도 생성하여 사용할 것
    ( 최후 배포 : devmain )
  3. dev Branch를 default 값으로 사용하는 방법
  • settings - Default Branch - dev 선택 - Update
profile
쥐눈(Jin Hoon)

0개의 댓글