혼자 간단한 프로젝트를 만들었을 땐 깃의 브랜치를 거의 사용하지 않았었다. 하지만 큰 프로젝트나 여러 사람이 참여하는 프로젝트에서는 브랜치가 매우 중요하다. 각각 독립적인 영역 안에서 마음대로 소스코드를 변경하기 위해서는 분리된 작업 영역에서 작업하고, 나중에 작업물을 합쳐야 한다. 브랜치를 다루는 핵심적인 명령어 몇 가지와 브랜치를 분기한 뒤 합칠 때 사용하는 merge와 rebase의 차이점을 정리해보겠다. Branch 명령어 브랜치 생성 : 'step1'이라는 이름의 브랜치를 생성한다. $ git branch step1 브랜치 확인 : 현재 생성되어 있는 브랜치 목록을 보여준다. $ git branch * master step1 브랜치 이동 : 'step1' 브랜치로 이동 $ git switch s..
Git
Git을 사용하여 커밋을 하다 보면 커밋 내역이 차곡차곡 쌓인다. 그런데 코딩을 하다 보면 커밋 기록을 취소하거나 과거로 돌아가야 할 일이 생긴다. 이때 사용할 수 있는 명령어가 바로 reset 또는 revert이다. reset, revert 차이점 reset - 특정 커밋으로 돌아간 다음 이후 행적은 히스토리에서 지워버린다. revert - 특정 커밋의 변경 내용을 반대로 실행하고 revert했다는 커밋을 하나 더 추가한다. 즉 reset으로 과거로 돌아가면 아예 없었던 일이 되지만 revert로 돌아가면 변경 내용만 롤백해주고 커밋 내역은 남아 있는 것이다. 예시 다음과 같이 4개의 커밋이 있다고 하자. commit bbaa3d2e16c2445bf96a20e1eb3518afa84bbdd8 (HEAD ..
upstream? origin? 깃을 사용하다 보면 upstream과 origin이라는 용어를 접할 때가 있다. 혼자 코딩하다 보면 접하지 못할 수도 있지만 내 깃허브 저장소가 아닌 다른 계정의 저장소를 fork해서 쓸 때 다른 저장소는 upstream으로, 내 저장소는 origin으로 별칭을 정하고 쓰는 것을 흔히 볼 수 있다. 본인은 우테코에서 미션을 진행하면서 woowacourse/{미션_저장소_이름}에서 저장소를 fork 해서 사용하면서 upstream이라는 단어를 접했다. upstream의 이해를 위해 우테코에서 어떻게 미션을 진행하는지 간략히 설명하면서 각 용어의 개념도 같이 적립해보겠다. 미션 진행 흐름 woowacourse/java-subway-path-precourse가 진행해야할 미션이..
Repository(저장소) 깃 저장소에는 로컬 저장소와 원격 저장소가 존재한다. 원격 저장소로 push하기 전까지는 로컬 저장소에서만 작업하게 된다. 로컬 저장소에는 세 가지 영역이 있다. Working Directory - 작업 중인 곳 (add 하기 전) Staging Area - 어느 정도 작업하다가 버전 히스토리에 저장할 준비가 되어있는 곳. (add 후, commit하기 전) .git directory - 버전 히스토리를 가지고 있는 곳 (commit 후) 저장소 초기화 프로젝트를 Git으로 관리하려면 저장소를 초기화해야한다. 먼저 저장소 디렉터리로 이동한 뒤에 init 명령어를 입력한다. $ git init 이 다음부터는 status로 상태를 확인할 수가 있다. $ git status On ..