Git_변경사항 취소하기&브랜치

Song Chae Won·2022년 7월 13일
0
post-thumbnail

출처ㅣ 인프런(inflearn) Git과 GitHub 시작하기(호눅스) 강의
https://www.inflearn.com/course/git-and-github/dashboard


Git

clone: 원격 저장소 (github) 을 내 컴퓨터에 복사해 온다.
add: 내 컴퓨터에서 작업한 파일들을 스테이지에 추가
commit: 스테이지에 올라온 파일들을 가지고 내 컴퓨터에 저장 (세이브와 같다.)
push: 커밋들을 원격 저장소에 업로드

checkout을 이용해서 저장하지 않은 변경 내용 취소하기

변경 사항 저장하기

먼저 커밋하고 난 상태에서 아무 파일이나 열고 이상한 내용을 마구 입력합니다. 이 상태에서 조금 겁이 나지만 저장

되돌리기

변경사항에서 되돌릴 파일을 선택하고 "코드 뭉치 버리기" 를 선택합니다.

브랜치(Branch)

기능 변경하기

이미 돌아가고 있는 프로그램에서 기능을 바꾸고 싶은 일이 생길 수 있습니다. 그럴 때 어떻게 해야 하나요? 보통 초보 개발자들은 주석을 활용합니다. 돌아가고 있는 부분을 삭제하면 아까우니까 주석 처리하고 개발합니다. 시간이 지나면 코드가 엉망진창으로 짜장짬뽕 믹싱이 되는데 이런 코드를 스파게티 코드라고 하죠. 이런 상황을 막기 위해서 브랜치를 사용할 수 있습니다.

시나리오

1) 기존 문서에 새로운 설명을 추가했다.
2) 내용이 맘에 안 들어서 다시 작업을 하고 싶다.
3) 혹시 모르니 기존 내용은 남겨 두고 싶다.
4) 새로 작업을 한 후에 비교해 보고 더 좋은 걸 결과물로 반영하자.

현재 상태

현재 폴더에는 hello.md 파일이 있고 커밋까지 되어 있습니다. 커밋 로그는 아래 그림처럼 되어 있습니다. 간단하게 보기 위해서 그림에 보이는 원격 브랜치 체크박스를 해제한 상태입니다.

새로운 브랜치 생성하기

사실 우리는 브랜치라는 걸 이미 사용하고 있습니다. 아무 설정도 안 하고 git을 사용하면 위 그림 왼쪽의 굵은 글씨에 보이는 것처럼 master 브랜치라고 하는 기본 브랜치에서 작업을 하게 됩니다. 브랜치가 뭐냐고 물어본다면 가상의 작업 환경입니다. 사실 마스터 브랜치는 사람들과 공유하고 싶은 최종 결과물이 있어야 하는 곳입니다. 브랜치를 새로 생성하면 기존의 마스터 브랜치의 내용은 그대로 보존하면서 새로운 작업 환경을 생성하는 거라고 설명해야 할 것 같네요.

브랜치의 이름은 일단 새로 구현할 기능 이름으로 합시다. 여기서는 'version2'로 이름을 붙이고, 마지막 커밋의 직전 커밋으로부터 생성을 합니다. 직전 커밋을 선택하고 우클릭 - 브랜치 - 새 브랜치를 선택하고 새로운 브랜치 이름 'version2' 를 입력해서 새로운 브랜치를 생성해 봅시다. 생성 후에는 version2라는 브랜치가 생기는데, 소스트리의 기능으로 자동으로 현재 브랜치가 version2가 됩니다. 왼쪽 메뉴를 보면 version2가 생기고 동그라미와 굵은 글씨로 표시된 걸 볼 수 있습니다. 그리고 오른쪽 커밋 로그를 보면 master보다 한 단계 아래 커밋에 version2가 생긴 것을 볼 수 있습니다.

현재 브랜치 변경하기

깃에서는 한 번에 하나의 브랜치에서만 작업이 가능한데 이를 헤드(HEAD) 브랜치라고 부릅니다.

현재 작업 중인 브랜치 = 헤드 브랜치

지금 헤드 브랜치는 뭘까요? 방금 전에 생성한 브랜치 version2 입니다. 브랜치를 변경하기 위해서는 체크아웃(checkout)이란 명령을 사용합니다. 사실은 아무 커밋으로나 돌아갈 수도 있지만 일단은 브랜치 변경을 위해 사용합니다. 소스트리를 사용하면 정말 쉽게 브랜치 체크아웃을 할 수 있습니다. 왼쪽 메뉴의 브랜치 이름을 더블 클릭만 하면 되죠. 연습 삼아 현재 브랜치를 master로 변경했다 다시 version2로 돌아와 봅시다. 더불어 파일의 내용도 살펴 보세요. 체크 아웃 할 때마다 파일의 내용이 변경되는 것도 볼 수 있습니다.

새로운 기능 추가하기

다시 version2 브랜치로 돌아와서 이번에는 실제 파일의 내용을 고쳐 봅시다. 편의상 기존의 hello.md 파일에 내용을 추가합니다.

변경한 후에 스테이지에 변경 사항을 올리고 커밋을 하면 새로운 커밋이 하나 생깁니다. 그런데 아래 그림처럼 version2 브랜치만 새로 생긴 커밋을 가르키게 됩니다.

다시 체크아웃 해보기

이제 우리는 두가지 버전이 생겼습니다. master 브랜치 버전과 version2 버전이지요. 각각의 체크아웃하면 각 브랜치의 내용으로 폴더안의 파일이 변합니다. 두 가지를 비교해 보고 고민 후에 최종적으로 하나를 선택하게 되겠죠? 그럴 때 병합하면 됩니다.

profile
@chhaewxn

0개의 댓글