이번에는 checkout 명령어에 대해서 간단하게 해 보도록 하겠습니다.

 


 처음 git을 생성한다면, master 브랜치만 있는 상황입니다.

 

 

 여기서, git branch AAA를 해 보겠습니다.

 

 

 그러면 뭔가 새로운 것이 생겼음을 알 수 있습니다.

 

 

 master가 있고, AAA가 있는데, 아직 Remote에는 반영이 되지 않은 상태입니다.

 

 

 git checkout AAA를 쳐 보겠습니다. 그러면, 브랜치가 Switched가 되었다고 하는데, 어떻게 된 상황인지 보겠습니다.

 

 

 아무 것도 바뀌지 않은 것 같지만, AAA 앞에 무엇인가 붙어 있다는 것을 확인할 수 있습니다.

 

 

 이 상황에서 코드에 "AAA"를 출력하는 코드를 작성을 하고, commit을 해 보겠습니다. 네 번째 커밋은 fourth commit으로 작성하였습니다.

 

 

 그러면, AAA는, first, first, second, third, fourth 이런 식으로 기록되었음을 확인할 수 있습니다.

 

 

 그런데, master는 first, first, second, third가 기록되었음을 볼 수 있습니다. 저는 현재 AAA 브랜치를 가리키고 있으니, 해당 부분을 그대로 push 하겠습니다.

 

 이제, AAA 브랜치에서 5번째 커밋도 같이 해 보겠습니다. 이것은 data의 dirT에 파일을 하나 추가한 작업입니다.

 

 

 그러면, AAA에는 fifth까지 갔고, 이것을 그대로 push 하겠습니다.

 


 이제 remote에서, 로컬로 clone을 하였습니다.

 

 그런데, dirT에 추가한 파일이 안 보입니다. 어떤 상태인지 git branch -a로 확인해 보겠습니다.

 

 

 제가 master 브랜치로 가져온 모양이네요.

 

 

 git checkout AAA를 입력해 보겠습니다.

 

 

 5번째 커밋에서 추가한 otherInit2.txt가 보이네요.

 

 

 확인을 해 보면, AAA를 가리키고 있음을 볼 수 있습니다. 그런데, 우리가 하고 있는 프로젝트의 master 브랜치가 아닌, AAA만을 가져오는 방법이 없을까요?

 

 

 --single-branch 옵션을 주면, 하나의 branch만을 clone 하게 됩니다. 직접 작성해 보겠습니다.

 

 

 git clone -b AAA --single-branch 주소. 이렇게 작성을 해 봅시다.

 

 

 그리고 모든 브랜치를 보면, 아까와는 다르게, 하나만 가지고 왔을 뿐입니다.

 

 

 인텔리제이 창에도 그리 표시가 되어 있네요.