Git에서 원격저장소에 있는 내용을 지역저장소로 가져올 때 두가지 방법을 사용 할 수 있습니다. 하나는 Pull 이고 다른 하나는 fetch인데요. 두 가지 개념을 간단히 설명하면 이렇습니다 ㅎㅎ pull - 원격저장소로 부터 내용을 가지고 온 후 병합 fetch - 원격저장소로 부터 내용을 가지고 온 후 병합X 두 가지 모두 원격저장소로부터 내용을 가지고 온다는 점에서 기능이 유사하지만, 한가지 차이점이 있습니다. 바로 병합을 하느냐 안하느냐의 차이인데요. 당연히 이러한 기능적 차이를 둔 이유가 있겠죠? 보통은 pull을 많이 사용하기에, 왜 기능이 겹치는 fetch라는 기능이 있는지에 대해 설명드리겠습니다. pull을 쓰면 바로 병합을 같이 해버리지만, 만약 fetch를 사용하면 병합을 수동으로 해줘..

앞서, 깃헙에 대해 살펴 보았으니, 이제 본격적으로 사용 방법에 대해 알아봐야 겠죠? 우선 깃헙에 회원가입을 하셨으면, 로그인을 해줍시다. 로그인 하면 다음 사진과 같이 화면 상단에 초록색버튼 New가 있을겁니다. 이 버튼은 깃허브에 원격저장소를 만들겠다는 버튼입니다. 클릭해 줍시다! 여기서 깃허브를 처음 사용하시는 분들은, 어렵게 느끼실 수도 있는데요. 전혀 두려워 할 것 없습니다! 각각의 용어에 대한 설명은 다음과 같습니다. Repository name - 원격저장소 이름 Description - 원격저장소에대한 간략한 설명 (선택 사항이므로 안적으셔도 됩니다.) Public & Private - 원격저장소를 공개로 설정할 것인지, 비공개로 설정할 것인지 선택 Initialize this reposi..
오늘은 Github에 대한 설명으로 넘어가기 전에, Git의 몇가지 작동방식에대해 짚고 넘어갈까 합니다! 브랜치의 원리 HEAD는 현재 자신이 어떤 브랜치에 속하는지 가리키는 것이라고 보면 된다고 했었는데요. 정확하게 알기위해 내부 구조를 보면, HEAD디렉토리는 refs/heads/브랜치파일을 가리키고 있고, 이 브랜치 파일은 최신 커밋을 가리키게 됩니다. 만약 master 브랜치에서 feature라는 새로운 브랜치를 생성하게 되면, refs/heads/feature 라는 파일이 생성되고, 이 feature 브랜치로 체크아웃 하게 되면 HEAD는 refs/heads/feature 파일을 가리키게 됩니다. reset의 원리 만약 master 브랜치에서 git reset --hard 명령어를 입력하게 되면..

Git을 사용할때 우리를 가장 힘들게 하는 그 것! 우리가 Git 사용하기 너무 어렵다고 하는 바로 그 이유! 오늘은 머지를 했을 때 충돌 해결 방법에 대해 알아보려고 합니다. 우선 저는 Sourcetree 라는 GUI툴 대신 계속 터미널에서 명령어로 Git을 사용하는 법을 다루고 있는데요, 앞서 포스팅 했던 내용들이 원리와 본질은 같고, 단지 각종 명령을 명령어로 입력해서 실행하느냐, 버튼을 눌러서 실행하느냐의 차이이기 때문에 Sourcetree를 사용하고 계셔도 글을 읽어보시면 많은 도움이 될 거라고 생각합니다! (아 참고로 나중에 Sourcetree 내용도 다룰 예정입니다.) 우선 충돌을 해결하는 방법을 알기 이전에 충돌이 왜 나는지부터 알아야 겠죠? 이유는 단순 합니다! 두 브랜치에 A라는 파일이..

오늘은 stash에 대해 알아 볼까 합니다! 우선 stash란 영단어가 생소한데, 뜻 먼저 알아 볼까요? 백과사전을 찾아보니 stash란 '(안전한곳에) 넣어두다.' 라는 의미를 갖고 있네요 ㅎㅎ 깃 에서 이름을 명명한대로 stash의 의미와 동일한 기능을 하는데요! 그럼 언제 쓰느냐!? 어느 특정 브랜치에서 작업을 하다가 그 작업이 다 끝나지 않은 상태에서 다른 브랜치에서의 작업을 위해 체크아웃 해야 할 때 사용합니다. , 좀 더 쉽게 풀어 쓰면, 아직 끝나지 않은 작업을 커밋한 후 다른 브랜치로 체크아웃하기 애매하기에 잠깐 작업 내용을 숨겨둔 상태로 다른 브랜치로 체크아웃 할때 사용 합니다! stash 역시 사용방법은 간단하데요. 어느 한 브랜치에서 작업하다가, 다른 브랜치로 체크아웃 할 때, git..

오늘 소개 드릴 Git의 기능은 Merge 입니다. 영어의 의미에서 알 수 있듯이, 브랜치를 서로 병합하는 작업을 머지라고 하는데요. 협업을 할 때, 가장 많이 문제가 발생하는게 바로 머지할때입니다. 서로 같은 부분을 수정한 상태로 머지를 하게되면 충돌이 일어나게 되는데, 이러한 충돌 해결방법은 차후에 다루기로 하고, 우선 머지하는 방법을 배워봅시다! 머지 하는 방법은 정말정말 너무 간단합니다. 만약 master브랜치에 feature1이라는 브랜치를 병합하고 싶으면, master 브랜치로 체크아웃 한 상태에서 (마스터 브랜치에 속한 상태) git merge feature1 이라고 명령어를 입력하고 머지 커밋을 생성하면 끝입니다. 머지가 잘 되었는지 그래프로 확인해보고 싶으시면, 앞서 배운 명령어 git ..

오늘은 git 브랜치에 대해 배워볼까 합니다. branch를 만든다는 것은 작업을 분기하겠다는 의미와 같습니다. 즉, 오늘 브랜치에 대해 배우면 앞으로는 작업을 분기시켜 관리 할 수 있는 능력을 얻게 되는 것이죠 :) 그럼 브랜치는 어떤 상황에서 만들게 될까요? 여러가지 경우가 있겠지만, 크게 두가지 경우 입니다. 원래 소스코드는 변경하지 않으면서 기존 소스코드에 다른 기능을 추가 하고자 할 때! 메인 작업과 테스트작업을 분기해서 진행하고자 할 때! 그럼 시작해 봅시다! git branch 라고 입력을 해보면 현재 branch 리스트가 나옵니다. 저희는 아직 새로운 브랜치를 생성한적이 없기 때문에, 아래와 같이 나올껍니다. master옆 에있는 *의 의미는 현재 어느 브랜치에 들어와 있는지를 나타냅니다...

Git 정리(3)으로 넘어가기 전에, Git의 간단한 원리를 정리해보고 넘어가고자 합니다. 생활코딩의 깃 강의를 들어보면 이고잉님이 서두에 이런 말씀을 하십니다. 1. 원리를 알고 공부 하면 기억이 오래가고 응용이 가능하다. 2. 원리를 공부하면서 다양한 영감을 받을 수 있다. 저에게 있어서 너무 공감가는 얘기였습니다. 어떤 분야이던지 기술만 배워서 사용하고 적용할 수 있지만, 어느 수준 이상에 도달 하기 위해서는 해당 기술에대한 원리 이해가 필수적이라고 생각하고 있었거든요. 옛말에 "기초가 중요하다.", "기초가 튼튼해야한다.", "초석을 잘 다져야된다." 등의 말이 동일한 맥락에서 나온 말이라고 생각합니다. 그래서 Git이 어떤식으로 동작하는 건지 간단한 원리를 짚고 넘어가려 합니다! 프로젝트 디렉토..

오늘은 git add와 git commit에 대해 알아볼까 합니다 :) 앞서 저희는 git init을 함으로써 이 프로젝트에 대해 버전관리를 시작하겠다고 컴퓨터에 알려줬었는데요. 이제 버전을 만들고 그 버전에 git을 add 하고 commit 함으로써 변경사항을 관리해 나가는 방법을 배울 겁니다. 여기서 버전이란, 보통은 의미있는 변화를 의미 합니다. (작업이 완결된 상태) 해당 버전이 자신이 만든것이라고 다른사람에게 알려주기 위해 git의 환경설정을 할 수 있는데, 이 부분은 선택사항 입니다. 하단의 명렁어 끝에 자신의 이름과 이메일(빨간색 글자)을 입력하면 내가 작성한 버전정보에는 자신의 이름과 이메일이 포함되게 됩니다. 따라서, 다른사람이 봤을때 누가 작업했는지 알 수 있습니다. git config..

Github 같은 분산버전관리시스템은 여러 협업 프로젝트를 진행하는데 있어서 필수적(?)으로 사용되는 툴 입니다. 저도 IT 연합동아리 활동을 하면서 Github을 사용했었는데, 겉할기 식으로 그때 그때 블로그나 구글 검색을 통해 참고한 지식으로 사용하다보니 정말 여러모로 고생을 많이 했던 기억이 있습니다 ㅜㅜ 한 번 이렇게 데이고나니(?) 제대로 배워서 사용하고 싶은 오기가 생겼었는데, 마침 알만한 사람들은 다 아는 생활코딩의 유튜브에 깃에 대한 강의가 있어서, 강의를 통해 배운 지식을 여기 블로그에 정리해 보려고 합니다 :) Git - 버전관리 시스템(Version Control System) 분류에 속하는 프로그램중 하나, 핵심은 프로젝트의 변경사항을 관리하는데 있다. Backup Recovery ..