하지만 프로젝트 작업을 진행하다보면 현재 프로젝트에서 새로운 기능을 넣거나 실험해보고 싶은 내용이 생길 경우가 있다. 이 경우 원본 파일을 수정하게 되면 다시 원점으로 돌아오기 힘든 상황이 발생할 수 있기에 현재까지는 해당 파일을 다른이름으로 복사하여 작업하고 실험해보는 과정을 진행했었다.
하지만 Git에서는 이러한 과정을 쉽게 다룰 수 있도록 서비스를 제공한다.
Branch가 이러한 내용을 의미한다. 나무에서 가지가 뻗어나가 듯 원본 파일에서 여러 파일들을 뻗어나간다는 의미로 볼 수 있을 것이다.
우선 작업환경을 셋팅하자.
디렉토리를 생성한 후 해당 디렉토리에 기존의 master branch에 대한 내용을 불러오자.
나는 test2라는 폴더를 생성한 후 해당 폴더에 master branch의 내용을 불러왔다.
이제 여기서 Readme.txt파일을 수정한 후 저장하였다.
그리고 추가적은 branch를 생성하기 위해 다음 명령어를 사용하였다.
우선 $ git branch 명령어를 통해 현재 어떠한 branch가 존재하는지 알 수 있다.
처음에는 아무런 branch도 생성하지 않았으므로 master branch만 존재하고 branch 생성을 위해
$ git branch another
위의 명령어를 통해 "another"이라는 이름의 branch를 생성하였다.
another 이라는 이름의 branch를 생성한 후 제대로 생성되었는지 확인하기 위해
$ git branch 명령어를 다시 입력해보면 위의 그림과 같이 another과 master이 둘 다 출력되고 master에 *표시가 붙은 것을 확인할 수 있다. 즉 현재 master branch 상태의 환경이라는 것이다.
$ git checkout another 명령어를 통해 현재 환경을 another branch로 변경해주자.
그럼 커맨드라인의 끝에 ( master ) 로 표시되던 부분이 ( another ) 로 변경되는 것을 확인할 수 있다.
그럼 깃허브 저장소에 있는 파일을 불러와 수정하고 다시 업로드(push)하는 과정을 진행해보자.
우선 새로운 폴더 test1을 생성한 후 git init을 통해 초기화해준다.
그럼 이제 해당 txt파일을 수정하자.
원래 아무 내용도 없던 텍스트파일에 임의의 문구를 작성한 후 저장하자.
그리고 git status를 확인해보면 다음과 같다.
그럼 이제 변경된 파일을 push하여 깃허브 저장소에 업로드하자.
그럼 이제 다시 깃허브 저장소로 이동하여 확인하여보자.
저장소에서 붉은색으로 표시한 부분을 클릭해보자.
그리고 branch들이 표시되는 부분에 master로 설정하면 초기 저장소에 Readme.txt파일을 생성하여 push했을 때, Edit Readme.txt 라는 커밋메시지의 내용을 push했을 때, 그리고 추가적으로 Secondary Edit on Readme.txt 라는 커밋메시지의 내용을 push하였고 모든 history가 확인되는 것을 볼 수 있다.
그럼 Readme.txt파일은 가장 마지막에 수정한 내용으로 작성되어 있음을 확인할 수 있다.