버그 잡이

[코드스쿼드 git 입문 강의 요약] git 기초 개념 본문

Git

[코드스쿼드 git 입문 강의 요약] git 기초 개념

버그잡이 2020. 4. 17. 21:18

최근 시작한 스터디가 있는데 거기서 사전 과제로 내준 것이 pull request를 하는 것이었다.

 

pull request를 하면서 생각보다 삽질을 많이 하였고 git에 대해서 공부할 필요성을 느꼈다.

 

그러던 중 우연히 찾은 강의가 코드스쿼드 채널에서 올린 git 입문 강의이다.

 

 

*[유튜브]코드 스쿼드 Git 입문 강의

https://www.youtube.com/watch?v=sB-wnaI-e2k&list=PLAHa1zfLtLiPrxoBo9a1HVmauvE2Mn3xX&index=11

 

 

복습 차원에서 영상 내용을 정리해보고자 한다.

 

 

 

기본 용어 정리

 

clone

- 원격 저장소를 복사한다.

- 이를 통해 내 pc로 해당 내용을 가져와 작업할 수 있다.

 

 

add

- 커밋하기 전에 저장을 원하는 파일들을 묵는 과정

- 스테이지에 파일을 올리는 과정이다.

 

commit

- 게임의 save와 같은 개념.  

- 스테이지 영역의 파일들을 가지고 커밋을 만든다.

 

 

push

 

- 원격 저장소에 커밋을 업로드한다.

 

 

 

 

파일 되돌리기(커밋 이전 상태로)

 

- 되돌리고 싶은 파일 선택 후 '코드뭉치 버리기' 선택

- (CLI에서는) git checkout [파일 이름]

 

 

 

 

브랜치 변경하기

 

브랜치란

 

- 기존 내용을 유지한 채 새로운 내용을 추가하고 싶을 때 사용한다.

- 그리고 보통 작업용 브랜치를 만들어서 작업 후 master에 merge하는 식으로 작업한다.

- 어떤 작업을 되돌리고 싶을때도 유용하게 사용할 수 있다.

 

 

사용법

 

- 원하는 커밋 우클릭 -> 브랜치 생성

- 소스트리에서는 브랜치 이름을 더블 클릭하는 것만으로 체크아웃(브랜치 변경)이 가능하다.

 

 

 

 

Merge(병합하기)

 

브랜치에서 작업한 내용을 원하는 브랜치(or Master)로 합치는 과정

 

 

#병합1. 하나의 새로운 가지(브랜치)만 작업이 진행된 경우(fast-forward merge)

  - 헤드 브랜치에 변경사항이 없고 병합 대상 브랜치가 헤드로부터 시작된 경우

  -> 충돌 없이 병합이 잘 진행된다

 

#병합2. 여러 개 가지(브랜치)가 동시에 진행된 경우

  - 헤드 브랜치에 추가적인 커밋이 생기는 경우

  - 충돌 가능성이 높다.

 

 * 충돌은 같은 파일을 서로 다르게 수정했을때 일어날 가능성이 높다.

 * 서로 다른 브랜치가 서로 다른 파일을 작업했을때는 충돌이 일어나지 않는다.

 

 

 

 

 

충돌 해결하기

 

1. 직접 수정

 

  - 에디터를 사용하여 내가 원하는 코드로 수정 해준 후 커밋

 

 

2. 소스트리 기능 활용

 

  - 충돌이 일어난 파일을 우클릭 -> 내 것 or 저장소 것으로 변경 -> 원하는 것으로 선택 후 커밋

    * 내 것 : 현재 브랜치 / * 저장소 것 : 병합하려는 브랜치

 

 

 

 

 

되돌리기

 

총 세가지 방법이 있다. reset / branch 활용 / revert

 

1. reset

 

- 돌아가기를 원하는 commit 우클릭 -> '이 커밋까지 현재 브랜치를 초기화'

 

*장점 : 쉽다.

*단점 : 위험하다(push하지 않고 하면 데이터가 다 날아간다.). 강제 푸쉬가 필요하다.

 

  ->소스트리는 강제 푸시를 지원하지도 않는다.(그만큼 위험하다는... 개인적으로 비추한다고 하신다.)

 

 

2. Branch를 만들어 되돌리기 (추천!!)

 

- 브랜치를 새로 만들어서 수정 후 master에 병합해준다.

 

*장점 : 쉽다. 데이터가 날아가지 않는다.

*단점 : 브랜치가 지저분해진다.

 

 

3. revert

 

- 지금까지의 기록은 남겨두고 해당 상황의 커밋을 다음 커밋으로 남겨준다.

 

- 가장 최근 commit에 대해서 revert를 진행해야한다.

 

   "더 이전의 커밋으로 되돌리기를 원한다면"

   - 최신부터 순서대로 revert를 반복 적용하면 된다.

 

*장점 : 데이터가 날아가지 않는다.

*단점 : 좀 어렵다.

 

반응형
Comments