17: 브랜치 워크플로우(branch workflow)
지금까지 먼 길을 달려오시느랴 수고하셨습니다. 이번 장에서는 여러분이 열심히 Git을 배워오신 궁극적인 이유와 관련이 깊다고 생각을 합니다. 이제 프로젝트를 진행할 때 브랜치를 사용한 어떤 워크플로우(workflow)들이 있는지를 배우고, 다음 장에서 브랜치 관리법에 대해 배우도록...
해당 게시글들은 Git Documentation의 Book을 참고했습니다. 원 저작물의 저작권인 Creative Commons Attribution Non Commercial Share Alike 3.0 license를 따릅니다.
지금까지 먼 길을 달려오시느랴 수고하셨습니다. 이번 장에서는 여러분이 열심히 Git을 배워오신 궁극적인 이유와 관련이 깊다고 생각을 합니다. 이제 프로젝트를 진행할 때 브랜치를 사용한 어떤 워크플로우(workflow)들이 있는지를 배우고, 다음 장에서 브랜치 관리법에 대해 배우도록...
저번 시간에는 리모트 브랜치, 트래킹 브랜치들의 개념을 살펴보았습니다. 이번에는 각각의 브랜치를 어떻게 만드는지 알아보도록 하겠습니다.
저번 시간에 영희의 로컬 저장소가 다음과 같이 변한 것을 확인했습니다:
이전까지의 작업은 거의 local에서 진행되었다고 볼 수 있습니다. 이제 다른 사람들과 협업을 하기 위해서는 리모트 저장소를 활용해야 합니다. 이때, 발생할 수 있는 상황 한 가지를 살펴보도록 하겠습니다.
특정 커밋에 태그를 할 수 있습니다. tag 란 ‘꼬리표’로 특정 시점을 별도로 저장하는 기능입니다. 보통 특정 버전을 출시할 때 사용합니다(v1.0 등).
저번 시간에 갈라진 두 개의 브랜치를 병합해주는 merge에 대해 배웠습니다. 이번에는 두 브랜치를 병합해주는 또 다른 방법인 git rebase를 배우도록 하겠습니다.
이번 글에서는 두 개의 브랜치를 합치는 git merge에 대해 배우도록 하겠습니다. 브랜치를 합치기 위해서는 주가 될 브랜치로 이동한 후, 합치고자 하는 브랜치 이름을 이용하여 명령어를 실행해주시면 됩니다:
브랜치를 이해하기 위해서는 커밋들간의 관계를 조금 살펴보아야 합니다. 각각의 커밋은 이전 커밋의 해시 정보를 포함하고 있습니다. 즉, 이전 커밋으로의 포인터를 갖고 있습니다. (이해가 잘 안 되시는 분들은 이전 커밋으로 갈 수 있는 연결고리가 존재한다고 생각하시면 좋을 것 같습니다...
리모트 저장소는 인터넷이나 네트워크 어딘가에 있는 저장소를 말합니다. 예를 들어 github에 만든 저장소 역시 리모트 저장소입니다.
여러 명의 사람들과 프로젝트를 진행하거나, 오픈 소스 프로젝트를 만들고 싶다면 서버를 만들어 공유할 수 있어야 합니다. 직접 서버를 만들 수도 있지만, 저희는 GitHub라는 Git 저장소 호스트를 이용하겠습니다.
이번에는 git에 의해 관리되는 파일들의 가능한 상태(status)에 대해 알아보도록 하겠습니다. 상태라는 말을 너무 어렵게 생각하실 필요가 없습니다. 앞선 강의에서 파일이 스테이징 에어리어를 거쳐 커밋되는 과정을 배웠습니다. 이때 스테이징 에어리어에 등록된 파일의 상태는 Stag...
지금까지 했던 커밋들의 내역을 git log를 사용하여 확인할 수 있습니다. 다음 명령을 실행해 보세요:
프로젝트를 진행하다 보면 파일을 삭제하고 싶은 경우가 있습니다. git에서의 파일 삭제는 일반적인 파일 삭제와 살짝 다릅니다. 중요한 점은 파일 삭제를 한 후 commit을 해주어야 합니다. 커밋은 한 시점의 스냅샷이므로, 파일을 삭제한 후 변경된 스냅샷을 저장해야 합니다.
파일을 git 저장소에 저장해 봅시다. git을 시작한 디렉토리 안에 저장할 파일을 하나 만듭니다. 저는 project 디렉토리에 sample.txt 파일을 만들도록 하겠습니다.
이제 본격적으로 git을 시작해 봅시다. 저희는 프로젝트를 진행하는 폴더 안의 파일들을 관리하고 싶은 것입니다. 그렇게 하기 위해서, 해당 폴더로 이동하여 git을 시작해 저장소를 만들어야 합니다. git을 시작하는 방법에는 두 가지 방법이 있습니다:
터미널을 열어보십시오. 윈도우 사용자께서는 git bash의 사용을 권해드립니다. 터미널을 처음 사용하시면 이것이 무엇인지조차 모르실 겁니다. 간단하게 mac에서는 finder, 윈도우에서는 윈도우탐색기(라이브러리)라고 생각하시면 됩니다. 차례대로 따라해 보시면 좋을 것 같습니다.
Git은 왜 필요할까요? 프로젝트를 하다보면 데이터 백업을 해두어 원하는 버전으로 돌아가고 싶을 때가 있습니다. 좋은 예시는 ‘자기소개서’를 작성할 때가 아닌가 싶습니다. 수정을 계속하지만, 혹시 이전 버전으로 돌아갈 때를 대비하여 새로운 파일로 따로 저장합니다. 기본 자기소개서에...