이번에는 직접 branch
를 만들어 보는 시간을 가져보도록 하겠습니다.
기존에 사용하던 ~/Documents/git_1
경로로 이동해줍니다.
이후 vim f5.txt
를 통해 파일을 만들어 줍니다.
a
라는 문구만 넣고 저장해줍시다.
늘 하던대로 f5.txt
파일을 add
해줍시다.
-m
명령을 통해서 커밋메세지를 바로 작성해줍시다.
처음이므로 로 설정하였습니다.
이후 다시 f5.txt
파일을 다음과 같이 수정해줍시다.
이후 커밋메세지는 로 하겠습니다.
add
와 commit
를 동시에 하기 위해서 -am
명령을 사용했습니다.
하지만 이때 주의 해야할점은 버전관리가 시작되지 않은 파일 , 즉 한번도 add
하지 않은 파일은 -a
명령어가 적용되지 않습니다.
git log
를 통해 현재까지 commit
의 내용들을 볼 수 있습니다.
이제 git branch
를 해보겠습니다.
이때 *master
이라는 문구가 따는데 이는 현재 본인이 master
이라는 branch
를 사용하고 있다는 의미입니다. 사실 git
은 사용하는 순간부터 기본적으로 master
를 사용하고있습니다.
처음에는 exp(experiment)
로 만들어 보겠습니다.
이후 다시 git branch
를 하면 정상적으로 추가된 것을 확인할 수 있습니다.
git checkout exp
를 하면 exp
로 바꿀수 있습니다.
git branch
를 통해 정상적으로 이동된것을 확인 할 수 있습니다.
이제 여기서 f5.txt
파일의 내용을 ab
에서 abc
로 바꿔보겠습니다.
branch
가 exp
인 상태에서 add
와 commit
을 해줍니다.
이때 branch
가 exp
인 상태에서 git log
를 하면 커밋메세지가 정상적으로 써진것을 확인 할 수 있습니다.
하지만 이때 git checkout master
을 하고 git log
를 명령어를 쓰면 특별한 일이 발생합니다.
이전에 썼던 이라는 커밋메세지가 보이질 않습니다.
또한 branch
가 master
인지 exp
인지에 따라 파일의 내용도 다릅니다.
즉 branch
상태에 따라 같은 파일이름이 존재하더라도 특정 branch
에서 파일의 내용을 수정할 수 있습니다.
이전에 본 이 그림과 아주 유사한 상황입니다.
그렇다면 branch
를 어디서 사용 할 수 있을까요?
원래의 소스코드를 바꾸지 않으면서 특정 고객만을 위한 기능을 추가할때가
가장 유용하게 쓸수있는 기능이 바로 branch
입니다.
몇가지 예를 들어보자면
누군가의 요청으로 개발을 했는데 , 자신의 생각하기에 특정 부분이 필요없다고 느껴질 수 있습니다. 따라서 나중에 특정기능을 제거할 수 있는 상황이 존재할것을 대비해 분기( branch
) 해서 작업을 진행하는 경우
개발을 열심히 하고 있는데 지금까지 개발한 것을 서버에 반영을 하고 테스트를 해서 문제점이 없는지 체크를 하는 경우 , 즉 메인을 위한 작업과 테스트를 위한 작업을 따로해야할 경우
이 외에도 여라가지 상황에서 branch
를 합니다.
오늘 내용은 여기까지지만 다음 내용을 공부하기전에 혼자서 branch
를 여러개 만들어보고 파일도 여러개 만들어 보고 checkout
도 스스로 해보는 연습을 해보고 다음내용을 공부해봅시다.