Git (6) 썸네일형 리스트형 6. Git 의 내부동작과 구조 개발 공부를 하거나 개발 협업을 경험해보았다면, 깃을 한 번 쯤은 사용해보았을 것이다. 3년 전에 깃을 처음 알게 된 후, 지금까지 사용하면서 나름 깃을 공부했다고 생각했다. 하지만 내가 한 것은 깃 공부가 아니라 깃 사용법 익히기 였던 것 같다. 그래서 이번에는 깃이 어떤 구조로 이루어져 있는지, 우리가 일반적으로 commit 을 할 때 내부에서는 어떤 일이 일어나는지 정리하려 한다. 먼저 깃은 분산 버전관리 툴이다. 각자의 저장소에 파일과 히스토리를 모두 복사할 수 있고, 중앙 서버에 문제가 생기면 각자의 저장소에 복사한 복제물로 작업을 이어나갈 수 있다. 모든 복제본이 서버 그 자체이며 모두가 원본과 백업본을 가지고 있다고 생각하면 이해가 쉬울 것이다. 이러한 깃은 각자의 저장소에 파일을 저장할 때.. 5. Git을 이용한 협업 (2), Git-Flow 도입 깃을 이용한 다양한 협업 방식 중 우리 프로젝트는 git -flow 방식을 도입했다. 도입 이전 약 1년동안 사용했던 git-merge 방식에 대한 소개는 이전 글을 참고하면 된다. 4. Git을 이용한 협업 (1), Git-Flow 도입 전 깃을 이용하여 브랜치를 관리하고 협업하는 방법은 매우 다양하다. 정답이 정해져 있지 않으며 팀원끼리 합의 하에 적절한 방법을 찾아 협업하면 된다. 우리 팀 역시 이러한 과정을 거쳤고, 처 self-motivated-developer.tistory.com git-flow 방식에서 가장 핵심은 rebase라고 할 수 있다. 개인적인 생각이긴 하지만 rebase라는 개념이 중요하다는 사실에 반박하는 사람은 없을 것이다. 처음 rebase를 성공하는데 애를 먹었는데 (무려.. 4. Git을 이용한 협업 (1), Git-Flow 도입 전 깃을 이용하여 브랜치를 관리하고 협업하는 방법은 매우 다양하다. 정답이 정해져 있지 않으며 팀원끼리 합의 하에 적절한 방법을 찾아 협업하면 된다. 우리 팀 역시 이러한 과정을 거쳤고, 처음 우리가 선택한 방법은 가장 기본적인 git merge 방법이었다. git merge 방법 깃헙 저장소 하나에 각자의 branch를 만들어서 로컬 branch의 commit 을 자신의 원격 branch에 push 하고 깃헙의 main (master) branch에 pull request를 보내는 방식으로 협업했다. 새로운 작업을 시작하기 전에는 main (master) branch의 내용을 fetch 및 pull 한 후에 작업하고 pull request를 보냈을 때 confilct가 발생하면 해결 후 merge 했다. .. 3. 로컬 저장소와 원격 저장소 & 명령어 (2) git 과 github에 대해 제대로 알기 위해서는 로컬 저장소와 원격 저장소를 모두 이해하고 잘 이용할 수 있어야 한다. 이번 게시물에서는 현재 내가 원격 저장소를 다루고 있는 방법에 대해 정리하겠다. 로컬 저장소에 변경사항을 저장하는 방법과 그 과정은 지난 게시물을 참고 바란다. 2. 로컬 저장소와 원격 저장소 & 명령어 (1) 버전을 관리하는 프로그램인 깃을 이용하여 로컬 저장소와 원격 저장소를 관리하는 방법을 정리하려 한다. 모든 과정의 명령어를 정리한다기 보다는 로컬 저장소와 원격 저장소를 구분해서 어 self-motivated-developer.tistory.com 우선 원격 저장소라고 하면 대부분 github (깃헙)을 떠올린다. 깃헙 이외에도 몇가지 저장소가 있지만 가장 많이 쓰이고 사용성.. 2. 로컬 저장소와 원격 저장소 & 명령어 (1) 버전을 관리하는 프로그램인 깃을 이용하여 로컬 저장소와 원격 저장소를 관리하는 방법을 정리하려 한다. 모든 과정의 명령어를 정리한다기 보다는 로컬 저장소와 원격 저장소를 구분해서 어떤 방식으로 쓰이는지에 집중한다. 먼저 깃을 이용하여 버전을 기록하려면 파일을 깃이라는 프로그램 하에 두는 것부터 시작해야 한다. git init 몇 가지 설정을 한 이후 위의 명령어를 이용하여 깃의 관리하에 프로그램을 두고 난 후부터 로컬 저장소를 이용한 버전관리가 가능해진다. git status 위의 명령어는 깃의 관리 하에 있는 파일의 변경사항을 보여준다. 여기서 나오는 "untracked files"는 이후에 나올 commit을 기다리는 파일들로, 현재 파일의 상태를 보여준다고 할 수 있다. git add -A 다음의 .. 1. 깃의 소개 git과 github는 협업을 하는 개발자라면 모두 사용해 본 경험이 있을 것이다. 처음 개발 공부를 시작하고 마주했던 git 강의에서 들었던 말을 아직 잊을 수가 없다. "지금 당장 협업을 할 계획이 없다면, 지금 이 강의를 듣지 말라." 처음에는 그냥 어려워서 그런가 했지만 그렇다기 보다는 실제로 협업을 하면서 git을 공부하니 더 빠르게 늘었고 제대로 사용할 수 있게 되면서 그 말의 본질을 이해할 수 있었다. 깃은 파일의 변화를 추적하는 프로그램이다. 변화를 추적한다는 말은 다시 말해 버전을 관리할 수 있다는 말과 같다. A라는 파일을 일주일동안 작업한다고 가정해보자. 일주일동안 A라는 파일을 저장하면서 작업한다면 깃의 사용과 무관하게 결과물은 동일하게 나올 것이다. 하지만 만약 5일차에 3일차 작.. 이전 1 다음