본문 바로가기

반응형

프로그래밍 독학/Git

(8)
Pro git 독학일지 8장 - Git 브랜치(4) Pro git 독학일지 8장 - Git 브랜치(4) Pull 하기 git fetch 명령을 실행하면 서버에는 존재하지만, 로컬에는 아직 없는 데이터를 받아와서 저장한다. 이 때 워킹 디렉토리의 파일 내용은 변경되지 않고 그대로 남는다. 서버로부터 데이터를 가져와서 저장해두고 사용자가 Merge하도록 준비만 해둔다. 간단히 말하면 git pull 명령은 대부분 git fetch 명령을 실행하고 나서 자동으로 git merge 명령을 수행하는 것 뿐이다. 바로 앞 절에서 살펴본 대로 clone이나 checkout 명령을 실행하여 추적 브랜치가 설정되면 git pull 명령은 서버로부터 데이터를 가져와서 현재 로컬 브랜치와 서버의 추적 브랜치를 Merge한다. 일반적으로 fetch와 merge 명령을 명시적으..
Pro git 독학일지 7장 - Git 브랜치(3) 리모트 브랜치 Pro git 독학일지 7장 - Git 브랜치(3) 리모트 브랜치 리모트 브랜치 리모트 Ref는 리모트 저장소에 있는 포인터인 레퍼런스다. 리모트 저장소에 있는 브랜치, 태그 등등을 의미한다. git ls-remote [remote] 명령으로 모든 리모트 Refs를 조회할 수 있다. git remote show [remote] 명령은 모든 리모트 브랜치와 그 정보를 보여준다. 리모트 Refs가 있지만 보통은 리모트 트래킹 브랜치를 사용한다. 리모트 트래킹 브랜치는 리모트 브랜치를 추적하는 브랜치다. 이 브랜치는 로컬에 있지만 움직일 수 없다. 리모트 서버에 연결할 때마다 리모트 브랜치에 따라서 자동으로 움직일 뿐이다. 리모트 트래킹 브랜치는 일종의 북마크라고 할 수 있다. 리모트 저장소에 마지막으로 연결..
Pro git 독학 일지 6장 - Git 브랜치(2) Pro git 독학 일지 6장 - Git 브랜치(2) 브랜치 관리 git branch 명령은 단순히 브랜치를 만들고 삭제하는 것이 아니다. 아무런 옵션 없이 실행하면 브랜치의 목록을 보여준다. * 기호가 붙어있는 master 브랜치는 현재 Checkout해서 작업하는 브랜치를 나타낸다. 즉, 지금 수정한 내용을 커밋하면 master 브랜치에 커밋되고 포인터가 앞으로 한단계 나아간다. git branch -v 명령을 실행하면 브랜치마다 마지막 커밋 메시지도 함께 보여준다. 각 브랜치가 지금 어떤 상태인지 확인하기에 좋은 옵션도 있다. 현재 Checkout한 브랜치를 기준으로 --merged와 --no-merged 옵션을 사용하여 Merge된 브랜치인지 그렇지 않은지 필터링해볼 수 있다. iss53 브랜치는..
Pro git 독학일지 5장 - Git 브랜치(1)(Branch, Merge) Pro git 독학일지 5장 - Git 브랜치(1)(Branch, Merge) 모든 버전관리 시스템은 브랜치를 지원한다. 개발을 하다 보면 코드를 여러 개로 복사해야 하는 일이 자주 생긴다. 코드를 통째로 복사하고 나서 원래 코드와는 상관없이 독립적으로 개발을 진행할 수 있는데, 이렇게 독립적으로 개발하는 것이 브랜치다. 사람들은 브랜치 모델이 Git의 최고의 장점이라고, Git이 다른 것들과 구분되는 특징이라고 말한다. 당최 어떤 점이 그렇게 특별한 것일까? Git의 브랜치는 매우 가볍다. 순식간에 브랜치를 새로 만들고 브랜치 사이를 이동할 수 있다. 다른 버전관리 시스템과는 달리 Git은 브랜치를 만들어 작업하고 나중에 Merge하는 방법을 권장한다 심지어 하루에 수십번씩 해도 괜찮다. Git 브랜치..
Pro git 독학일지 4장 - Git의 기초(3) Pro git 독학일지 4장 - Git의 기초(3) 되돌리기 일을 하다 보면 모든 단계에서 어떤 것은 되돌리고 싶을 때가 있다. 이번에는 우리가 한 일을 되돌리는 방법을 살펴본다. 한 번 되돌리면 복구할 수 없기에 주의해야 한다. Git을 사용하면 우리가 저지른 실수는 대부분 복구할 수 있지만 되돌린 것은 복구할 수 없다. 종종 완료한 커밋을 수정해야 할 때가 있다. 너무 일찍 커밋했거나 어떤 파일을 빼먹었을 때, 그리고 커밋 메시지를 잘못 적었을 때 한다. $ git commit --amend 이 명령은 Staging Area를 사용하여 커밋한다. 만약 마지막으로 커밋하고 나서 수정한 것이 없다면(커밋하자마자 바로 이 명령을 실행하는 경우) 조금 전에 한 커밋과 모든 것이 같다. 이 때는 커밋 메시지만..
Pro git 독학일지 3장 - Git의 기초(2) Pro git 독학일지 3장 - Git의 기초(2) Staged 와 Unstaged 상태의 변경 내용을 보기 단순히 파일이 변경됐다는 사실이 아니라 어떤 내용이 변경됐는지 살펴보려면 git status 명령이 아니라 git diff 명령을 사용한다. Patch처럼 어떤 라인을 추가했고 삭제했는지가 궁금할 때 사용한다. README 파일을 수정해서 Staged 상태로 만들고 CONTRIBUTING.md 파일은 그냥 수정만 해둔다. 이 상태에서 git status 명령을 실행하면 아래와 같은 메시지를 볼 수 있다. git diff 명령을 실행하면 수정했지만 아직 staged 상태가 아닌 파일을 비교해볼 수 있다. 이 명령은 워킹 디렉토리에 있는 것과 Staging Area에 있는 것을 비교한다. 그래서 수정..
Pro git 독학일지 2장 - Git의 기초(1) Pro git 독학일지 2장 - Git의 기초 2장을 다 읽으면 1. 저장소를 만들고 설정하는 방법 2. 파일을 추적하거나(Track) 추적을 그만두는 방법 3. 변경 내용을 Stage하고 커밋하는 방법 4. 파일이나 패턴을 무시하도록 Git을 설정하는 방법 5. 실수를 쉽고 빠르게 만회하는 방법 6. 프로젝트 히스토리를 조회하고 커밋을 비교하는 방법 7. 리모트 저장소에 Push하고 Pull하는 방법 을 알게 된다. Git 저장소 만들기 두 가지 방법이 있다. 1. 기존 프로젝트나 디렉토리를 Git 저장소로 만드는 방법이 있고, 2. 다른 서버에 있는 저장소를 Clone 하는 방법이 있다. 기존 프로젝트를 Git으로 관리하고 싶을 때, 프로젝트의 디렉토리로 이동한다. 그리고 아래와 같은 명령을 실행한다..
Pro git 독학일지 1장 - 버전관리란? Pro git 독학일지 1장 - 버전관리란? 깃을 처음 시작하는 것은 아니지만, 깃이 뭐냐고 물어보면 정확히 말할 수 없는 내가 깃을 정확하게 설명할 수 있는 사람으로 거듭나기 위해 1장을 정리한다. 이 장을 다 읽고 나면 아래와 같은 질문들에 대한 답을 명확하게 말할 수 있을 것이다. 1. Git은 어떻게 탄생했나요? 2. Git은 왜 쓰는거에요? 3. Git은 어떻게 쓰는거에요? 버전 관리란? 버전 관리는 무엇이고 우리는 왜 이것을 알아야 할까?? 버전관리 시스템은 1. 파일 변화를 시간에 따라 기록했다가 2. 나중에 특정 시점의 버전을 다시 꺼내올 수 있는 시스템이다. 버전 관리 시스템의 종류 많은 사람은 버전을 관리하기 위해 디렉토리로 파일을 복사하는 방법을 쓴다. 간단하지만 잘못되기 쉽다. 작업..

반응형