본문 바로가기
git & github

git & github 정리

by 서영선 2023. 4. 29.

공부한 이유

프로젝트 진행시, 깃허브 main 브랜치에서 관리하는데 충돌이 났을 때 해결방법을 몰라서 공부하게 되었다.

 

 

 

 

1.git 초기 설정 :

git config --global user.name "(본인 이름)"

git config --global user.email "(본인 이메일)"

 

확인하기 위해서는

git config --global user.name

git config --global user.email

 

 

 

 

2. 프로젝트 시작 & git 관리 시작

git init

:   .git 파일이 생성되면서 git 관리 시작됨

 

 

※  .gitignore 파일을 이용해 보안상 민감하거나, 자동으로 생성되는 파일 등을 git 관리에서 배제할 수 있다.

 

 

 

 

 

3. git commit 하기

git status
git add .
git commit -m "FIRST COMMIT"
git log

 

→ git log로 확인해보기 , git commit 만 실행시 Vi 입력모드 실행 됨 ( i(입력시작) + 커밋 메시지 작성후 esc버튼 + :wq(저장하고 나가기) 누름) 

 

 

 

 

 

 

4.Git에서 과거로 돌아가는 두 방식

  • reset : 원하는 시점으로 돌아간 뒤 이후 내역들을 지운다
  • revert : 되돌리기 원하는 시점의 커밋을 거꾸로 실행한다.

 

 

▶ reset 사용해서 과거로 돌아가기 

git log
git reset --hard (돌아갈 커밋 해시)

git log해서 돌아가고 싶은 커밋의 해시 복사

 

 

 

 

▶revert 사용해서 과거로 돌아가기

git log
git revert (되돌릴 커밋 해시)

 

 

커밋해버리지 않고 revert하기

git revert --no-commit (되돌릴  커밋 해시)

이전으로 돌아갔지만 커밋되지는 않음, 다른 작업을 추가한 다음 함께 커밋가능함

 

 

 

 

 

 

 

 

5. 브랜치 생성 / 이동 / 삭제하기

git branch ys

:  ys branch 생성

 

git branch

브랜치 목록 확인

git switch ys

:  ys branch로 이동, 최근 checkout 명령어가 switch, restore로 분리

 

 

 

 

git branch -d (삭제할 브랜치명)

:  브랜치 삭제하기

 

 

 

 

 

 

6. 서로 다른 브랜치를 합치는 두 방식

  • merge : 두 브랜치를 한 커밋에 이어붙인다.
    • 브랜치 사용내역을 남길 필요가 있을 때 적합한 방식이다.
    • 다른 형태의 merge에 대해서도 이후 다루게 될 것이다.
  • rebase : 브랜치를 다른 브랜치에 이어붙인다.
    • 한 줄로 깔끔히 정리된 내역을 유지하기 원할 때 적합하다.
    • 이미 팀원과 공유된 커밋들에 대해서는 사용하지 않는 것이 좋다.

 

 

 

 

▶ merge로 합치기

git merge ys

:  main 브랜치에 ys 브랜치 병합

 

※  merge는 reset으로 되돌리기 가능

 

 

 merge된 브랜치는 삭제

git branch -d ys

 

 

 

 

▶ rebase로 합치기

ys 브랜치를 main 브랜치로 rebase

 

1. ys 브랜치로 이동

git switch ys

2. rebase 하기

 

git rebase main

3. main 브랜치로 이동 후 아래 명령어로 ys의 시점으로 fast-forward

 

git merge ys

4. 브랜치 삭제

git branch -d ys

 

 

 

 

 

 

 

 

7.  충돌 해결하기

브랜치간 충돌 :  파일의 같은 위치에 다른 내용이 입력된 상황

 

 

▶ merge 충돌시

git merge ys

명령후, 브랜치간 충돌한다면

 

해결 가능 시 충돌 부분을 수정한 뒤 git add ., git commit으로 병합 완료

 

 

 

 

해결이 어렵다면, 중단

git merge --abort

 

 

 

 

 

▶ rebase 충돌시

git rebase main

명령후, 브랜치간  충돌한다면,

 

 

해결 가능 시

  • 충돌 부분을 수정한 뒤 git add .
  • 아래 명령어로 계속
git rebase --continue

충돌이 모두 해결될 때까지 반복

 

 

 

 

해결이 어렵다면, 중단

git rebase --abort

 

 

 

 

 

 

8.  pull 할 것이 있을 때 push를 하면?

    • git pull --no-rebase - merge 방식
      • 소스트리에서 확인해보기
      • reset으로 되돌린 다음 아래 방식도 해보기
    • git pull --rebase - rebase 방식
      • pull 상의 rebase는 다름 (협업시 사용 OK)
  1. push하기

 

 

 

 

 

 

 

 

추가)  git에서 특정 브랜치만 clone하는 방법

git clone -b {branch_name} --single-branch {저장소 URL}

ex) ys branch만 clone하고 싶으면,  git clone -b ys --single-branch https://github.com/movieCommunity.git 

 

 


참고한 자료

 

강의

제대로 파는 Git & GitHub - 깃 끝.장.내.기 - YouTube

 

블로그 

제대로 파는 Git & GitHub (무료 파트) | 얄코 (yalco.kr)

 

제대로 파는 Git & GitHub (무료 파트)

어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 묻는 질문들의 답변들, 예제 코드들을 얄코에서 확인하세요!

www.yalco.kr

 

댓글