Home
Sunhyeok Choe
취소

[Git] 브랜치 및 커밋 개체 생성 과정

Git이 브랜치를 다루는 과정을 이해하려면 Git이 데이터를 어떻게 저장하는지 알아야 한다. Git은 데이터를 변경사항(Diff)으로 기록하지 않고 일련의 스냅샷으로 기록한다. 커밋하면 Git은 현 Staging Area에 있는 데이터의 스냅샷에 대한 포인터, 저자나 커밋 메시지 같은 메타데이터, 이전 커밋에 대한 포인터 등을 포함하는 커밋 개체(...

[Git] 태그

Git의 태그는 브랜치와 비슷한데 브랜치처럼 가리키는 지점을 최신 커밋으로 이동시키지 않는다. 단순히 특정 커밋에 대한 포인터일 뿐이다. 보통 Release할 때 사용하며(v1.0 등등) Git을 우아하게 다루기 위해 태그를 잘 알아두는 것이 좋다! 태그 종류, 조회, 생성, 삭제에 관해 알아보자. 태그 종류 태그는 Lightweight 태...

[Git] Alias

Git의 명령을 전부 입력하는 것이 귀찮다면 git config를 사용하여 각 명령을 단축하여 사용할 수 있도록 설정하면 된다. $ git config --global alias.co checkout $ git config --global alias.br branch $ git config --global alias.ci commit $ git co...

[Git] 리모트 저장소

리모트 저장소를 알아야 다른 개발자들과 협업할 수 있다.리모트 저장소는 인터넷이나 네트워크 어딘가에 있는 저장소를 말한다. 저장소는 여러 개가 있을 수 있는데 어떤 저장소는 읽고 쓰기 모두 할 수 있고 어떤 저장소는 읽기만 가능하다. 간단히 말해서 다른 개발자들과 함께 협업한다는 것은 리모트 저장소를 관리하면서 데이터를 거기에 Push하고 Pull하는...

[Git] 커밋 되돌리기

종종 완료한 커밋을 수정해야 할 때가 있다. 너무 일찍 커밋했거나 어떤 파일을 빼먹었을 때 그리고 커밋 메시지를 잘못 적었을 때 그렇다. 기존 커밋에 다시 커밋하려면 --amend를 사용하면 된다. $ git commit --amend 만약 마지막으로 커밋하고 나서 수정한 것이 없다면(커밋하자마자 바로 이 명령을 실행하는 경우) 조금 전에 한 커...

[Git] 커밋 히스토리 조회하기

그 동안 커밋했던 내역을 보고싶은 경우 git log 명령을 활용하면 된다. 아래 예제에서는 “simplegit”이라는 매우 단순한 프로젝트를 사용한다. 아래와 같이 이 프로젝트를 Clone 한다. $ git clone https://github.com/schacon/simplegit-progit 이 프로젝트 디렉터리에서 git log 명령을 ...

[Git] 파일 이름 변경하기

Git은 다른 VCS와는 달리 파일 이름의 변경이나 파일의 이동을 명시적으로 관리하지 않는다. 다시 말해서 파일 이름이 변경됐다는 별도의 정보를 저장하지 않는다. Git은 굳이 파일 이름이 변경되었다는 것을 추적하지 않아도 아는 방법이 있다. 이렇게 말하고 Git에 mv 명령이 있는 게 좀 이상하겠지만, 아래와 같이 파일 이름을 변경할 수 있다. ...

[Git] 파일 삭제하기

Git에서 파일을 제거하려면 git rm 명령으로 Tracked 상태의 파일을 삭제한 후(정확하게는 Staging Area에서 삭제하는 것) 커밋해야 한다. 이 명령은 워킹 디렉터리에 있는 파일도 삭제하기 때문에 실제로 파일도 지워진다. Git 명령을 사용하지 않고 단순히 워킹 디렉터리에서 파일을 삭제하고 git status 명령으로 상태를 확인하면 ...

[Git] 변경사항 커밋하기

수정한 내용을 커밋하기 위해 Staging Area에 파일을 정리했다. Unstaged 상태의 파일은 커밋되지 않는다는 것을 기억해야 한다. Git은 파일을 생성하거나 수정하고 나서 git add 명령으로 추가하지 않으면 커밋하지 않는다. 그 파일은 여전히 Modified 상태로 남아 있을 것이다. 커밋하기 전에 git status 명령으로 모든 것이...

[Git] Staged와 Unstaged 상태의 변경 내용 보기

단순히 파일이 변경됐다는 사실이 아니라 어떤 내용이 변경됐는지 살펴보려면 git status 명령이 아니라 git diff 명령을 사용해야 한다. 보통 우리는 “수정했지만 아직 Staged 파일이 아닌 것”과 “어떤 파일이 Staged 상태인지”가 궁금하기 때문에 git status 명령으로도 충분했다. 하지만 파일의 내용이 어떻게 변경됐는지는 알 수...