1. 프로그래밍
6. Git 협업하기
1. git push 전에 git pull을 해야하는 경우가 많다 이번엔 git push를 하면서 자주 만나는 상황을 알아보겠다. premium 브랜치의 license 파일에 기업용 가격에 대한 내용을 추가하고, premium 브랜치에 커밋까지 완료했다. 깃허브의 premium 브랜치 license 파일에는 교육용 가격에 대한 정보를 추가하고 커밋메세지를 남겨 주었다. 그러면 현재는 로컬 레포지토리와 리모트 레포지토리의 최신 커밋 내용이 각각 다르다. 로컬 레포지토리에는 기업용 가격에 대한 정보가, 리모트 레포지토리에는 교육용 가격에 대한 정보가 추가되어있다. 이렇게 한 프로그램을 각각 다른 개발자가 다른 방식으로 개발하는 일은 매우 흔하다. 이 상태에서 로컬 레포지토리에서 리모트 레포지토리에 git p..

5. 브랜치 사용하기 (2) - [ git reset / checkout / merge ]
8. HEAD와 브랜치의 관계 main 브랜치에서 커밋 히스토리를 살펴보면 HEAD가 main을 가리키고 있다.(HEAD -> main) 앞서 HEAD는 어떤 커밋 하나를 가리키고, branch는 하나의 코드 관리 흐름이라고 했다. 둘은 무슨 관계길래 HEAD가 브랜치를 가리키는 형상을 띠고 있을까? 먼저 branch는 코드를 관리하는 하나의 흐름인데, HEAD처럼 어떤 커밋을 가리키는 존재이다. 앞으로는 포인터라고 설명하겠다. 우리가 커밋을 처음으로 하면 main 브랜치가 첫번째 커밋부터 시작해서 매번 새롭게 생기는 커밋을 가리킨다. 깃에서 커밋은 이전 커밋에 대한 정보를 가지고 있으므로 main 포인터가 가장 최신의 커밋을 가리키고 있다고 해도 결국 그 이전 커밋으로 하나씩 거슬러 올라갈 수 있기 때..
![5. 브랜치 사용하기 (2) - [ git reset / checkout / merge ]](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdeo9i1%2Fbtrd1yRMgIx%2FS4c7C7IRWLJbGGSHykK561%2Fimg.png)
5. 브랜치 사용하기 - [ branch / merge ]
1. 브랜치란? 브랜치란 하나의 코드 관리 흐름으로, 나뭇가지를 뜻한다. Git은 루트 커밋을 시작으로 여러번의 수정을 거치고 가지가 갈라지는 나무 모양을 하고 있다. 여기서 가지 하나하나를 브랜치라고 한다. 예를 들면 하나의 프로그램이라도 유료 버전, 무료 버전이 있을 수 있다. 이럴 때 다른 두 개의 프로젝트를 만들기 보다, 하나의 프로젝트 내에서 두 개의 브랜치를 만드는 것이 더 효율적이다. 현재까지 나는 하나의 브랜치 위에서 작업해왔다. git bash에서 git status를 입력하면 on branch main 이라고 출력되는 것을 볼 수 있다. 여기서 main 은 레포지토리를 만들고 커밋을 하면 자동으로 생기는 기본 브랜치이다. 지금까지 만든 프로젝트를 무료 버전으로 하고, 유료 버전의 브랜치..
![5. 브랜치 사용하기 - [ branch / merge ]](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzdGzR%2Fbtrd0zP2NPl%2F7PL1Qkl1dIwK1vM8BOk1g1%2Fimg.png)
4. 커밋 다루기 - [ commit history / 커밋 메세지 / HEAD / git reset ]
1. 커밋 히스토리 살펴보기 이때까지 한 커밋들을 커밋 히스토리라고 한다. git bash에서 git log 커맨드를 입력하면 커밋 히스토리를 확인할 수 있다. 가장 오래된 커밋이 아래에, 최신 커밋이 위에 출력된다. 노란색으로 표시된 commit 옆에 긴 문자열들은 커밋 아이디(=커밋 해시)이다. 커밋 히스토리에는 차례로 커밋 아이디, 커밋을 한 사람, 날짜와 시간, 커밋 메세지가 출력된다. 앞서 커밋 히스토리를 확인해 봤을 땐 커밋 히스토리 하나가 공간을 많이 차지해 한눈에 알아보기 어려운 느낌이다. q를 입력해 빠져나간 후, git log 커맨드에 --pretty=oneline 이라는 옵션을 붙여주면 더 깔끔하게 볼 수 있다. 사진처럼 커밋 아이디와 커밋 메세지만 한 줄에 표시된다. 나는 총 네 번..
![4. 커밋 다루기 - [ commit history / 커밋 메세지 / HEAD / git reset ]](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcuGFmL%2FbtrdC8YMlzh%2FbzDrNZaqxmx13rN2YV7581%2Fimg.png)
3. GitHub 시작하기 - [ Git hub / Remote Repository / 사용자 초대 / Readme.md ]
1. GitHub 계정과 Remote Repository 만들기 GitHub는 프로젝트 디렉토리에서 만든 작업물을 외부의 컴퓨터로 전송할 수 있게 해준다. = 즉 레포지토리를 전송하는 것과 같다. 외부의 컴퓨터에서도 하던 작업물의 작업과 버전관리가 가능해짐! 사용에 앞서 GitHub 홈페이지에서 회원가입이 필요하다. 앞서 생성했던 MathTool 디렉토리를 GitHub가 제공하는 장소로 옮기기 위해 우선 GitHub에서 비어있는 Repository를 하나 생성해야 한다. Repository name에는 MathTool 이라고 적어도 되고, 다른 이름을 넣어줘도 된다. Description에는 간단한 설명을 첨부하고 Public, Private을 설정해 준다. 그런 후 Create Repository를 클..
![3. GitHub 시작하기 - [ Git hub / Remote Repository / 사용자 초대 / Readme.md ]](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnBrSG%2Fbtrc8go3gvw%2FtpKfWQb1LK1baO0sBLf2y0%2Fimg.png)
2. Git 써보기 - [ repository / commit / add ]
repository와 commit Git을 사용하기 위해 기본적으로 알아야 할 개념들! 먼저 repository는 우리말로 저장소 라는 뜻이다. Git에서 레포지토리에는 프로젝트를 위해 만든 디렉토리의 초창기 모습부터 최근 모습까지 버전별로 담기게 된다.(변경사항들은 .git 디렉토리에 담김!) 다음으로 commit은 프로젝트 디렉토리의 모습을 하나의 버전으로 남기는 동작을 커밋한다 라고 표현한다. 즉 프로젝트 디렉토리의 특정 모습을 하나의 버전으로 남기는 행위 & 결과물을 커밋, 이 커밋이 저장되는 곳이 레포지토리라고 볼 수 있다. repository 만들기 간단한 수학 계산기 프로그램을 만들고, 이 프로젝트를 진행하면서 Git을 사용해 보겠다. 먼저 프로젝트 디렉토리로 MathTool 디렉토리를 만든..
![2. Git 써보기 - [ repository / commit / add ]](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3hn2h%2FbtrcA1tTQVr%2FIYqxke2doXY33WeYUKLYF1%2Fimg.png)