로컬 저장소 사용을 위한 Git - 2

2019. 10. 2. 10:11드론

기본적으로 Git을 사용할 때는 위와 같이 파일을 추가하고, 수정하고, 커밋하면서 계속 프로젝트를 진행하면 된다. 그러나 기존 프로젝트에 영향이 가지 않는 새로운 실험적 기능을 추가해야 하거나, 기존 기능을 변경해야 하는 상황이 고려될 수 있다. 이때 사용하는 기능이 브랜치다. 쉽게 말해 복사 붙여넣기라고 생각하면 된다

 

자신의 git workspace로 접속한 후 브랜치 정보를 확인한다

 $ git branch 

 

따로 브랜치를 만들지 않았기 때문에 기본 master만 존재하는 것을 알 수 있다. 브랜치를 하나 생성하도록 한다

 $ git branch [생성 브랜치 이름] 

 

*는 현재 브랜치를 알려준다. hotfix라는 브랜치를 만들었지만 아직 주 브랜치(작업 중)는 아니다. git checkout 명령으로 브랜치 전환이 가능하다

 $ git checkout [바꿀 브랜치 이름] 

 

-b 옵션으로 브랜치 생성과 전환을 한번에 할 수 있다

 $ git checkout -b [바꿀 브랜치 이름] 

 

브랜치 전환이 완료되었다면, 지금부터 하는 작업은 오직 hotfix 브랜치에만 영향을 끼치게 된다. master 브랜치로 전환하기 전까지 작업했던 모든 것을 해당 브랜치의 최종 커밋 상태로 보존된다. 복사된 hello.py에 추가적인 출력문을 넣어주도록 한다

 

 

 $ git commit -a 

아래 명령어는 변경된 저장소에 있는 모든 파일들을 커밋하는 옵션이다

 

다음과 같이 커밋 메세지를 추가해준다

 

 $ git commit -m "커밋메세지" 

-m 옵션은 vim에서 커밋메세지 작성없이 바로 메세지를 전달할 수 있다. 단, 위와 같은 방식으로 커밋메세지를 입력할 때는 큰 따옴표를 사용할 수 없다. 커맨드라인에서 명령과 함께 커밋메세지를 입력하는 것을 인라인 방식이라고 한다. 간편한 메세지는 좋지만, 제약이 있고 많은 메세지를 남길 때는 불편하다. 따라서 vim으로 커밋메세지를 작성하는 것을 권장한다

 

이제는 변경 사항을 master 브랜치에서 merge를 하려고 한다. 기준이 되는 브랜치도 바꾼 후, 즉 master로 변경 후 hotfix를 병합하려고 한다

$ git checkout master
$ git status
$ git merge hotfix
$ python hello.py

 

 

병합되어서 내용이 수정되었음을 알 수 있다. hotfix 브랜치에 위치한 상황에서 git merge master 명령을 실행해도 병합이 된다. 단, hotfix 브랜치에 위치한 파일 기준으로 모든 내용을 병합한다. 즉 master 브랜치는 변경되지 않고 hotfix 브랜치에 master 브랜치 내용이 합쳐지게 된다. 때문에 기준이 되는 브랜치를 확인해야 한다

 

자신이 가지고 있는 파일일지라도 추가된 파일이 있다면 이 또한 merge에서 추가된다

 

[출처] 만들면서 배우는 Git, Github 입문 윤웅식

'드론' 카테고리의 다른 글

Git log 작업 흐름 보기  (0) 2019.10.02
Git 충돌 해결  (0) 2019.10.02
로컬 저장소 사용을 위한 Git - 1  (0) 2019.10.02
darknet ros 예제파일 실행  (0) 2019.10.02
ROS YOLO detection 코드 분석하기  (0) 2019.10.01