개발자라면 가장 많이 사용하고, 코드 관리에 있어 가장 많이 의존하게 되는 github 사용을 위한 주요 명령어를 정리해보고자 한다.
Git과 Github이란?
Configuration Management Tool(형상관리도구) 중 하나이다. 즉 소프트웨어 개발의 코드들을 효과적으로 관리할 수 있게하는 도구인 것이다. 소스코드를 일일이 파일로 주고 받을 필요 없이, 같은 파일을 가지고 여러명이 동시에 수정하고 병합하는 병렬 개발이 가능하다. 즉 코드 관리뿐 아니라 협업에도 매우 유용한 툴이다.
Github이란 이러한 코드들을 관리하는 서버인 것이다. 즉 git으로 저장되고 관리되는 코드들을 직접 눈으로 보고 확인할 수 있도록 하는 하나의 웹사이트라고 생각하면 쉽다.
Git으로 저장되는 하나의 프로젝트들은 Github의 repositary(저장소)에 저장된다.
git은 처음 개발 공부를 시작했을 때, 가장 많이 들었던 도구 중 하나였다. 처음에는 익숙해지느라 시간이 좀 걸겼지만, 터미널 환경을 통한 git 코드 관리가 얼마나 편리한 건지 느끼게 되었다. 사용하다보니 주로 사용하는 깃 명령어들이 있어 그 명령어를 정리해보고자 한다.
주요 git 명령어
git init 버전관리 하고 싶은 폴더에서 초기화를 준비하려 할 때, 해당 폴더에 들어가서 터미널 창에 해당 명령어를 실행하고 자 한다.
새로운 프로젝트를 만들때
- 우선 새로운 깃헙에 새로운 저장소를 만들어야 한다.
- new 저장소를 만들고 난 이후, 해당 깃주소를 복사한다.
- 그리고 만들고자 하는 프로젝트를 에디터에서 실행한 후,
git remote add origin "깃주소" 를 명령어에 입력한다.
프로젝트 소스 코드 저장및 관리하기
- git add "파일명" 코드를 변경한 파일을 저장하는 명령어이다
-> git add ." 변경된 모든 파일을 한꺼번에 저장하는 명령어
- git commit -m "커밋 메시지" git 저장소에 파일을 저장하는 명령어
-> 여기서 커밋 메시지는 내가 작성하고 저장하는 코드의 진행 상황을 간략히 적어주면 된다.
- git push origin "브랜치명" git 저장소에 저장한 코드들을 github 저장소의 브랜치에 저장하고 등록하는 명령어이다.
-> branch란? 단어 의미 그대로 가지라는 뜻이다. 즉, 저장소 내의 저장소들이다. 즉 repositary가 하나의 집이라면, branch는 각각의 방들이라고 보면 된다.
-> 가장 기본적인 branch는 master이다. 따라서 git push origin master 명령어가 주로 사용된다.
branch를 만들고 관리하기
- git branch 현재 위치한 branch가 어디인지 확인하는 명령어이다.
- git checkout -b "만들고자 하는 branch명" 새로운 branch를 만드는 명령어이다.
- git checkout "이동하고자하는 branch명" branch를 이동하는 명령어이다.
->새로운 branch를 만들때는 master branch로 돌아간 후, 다시 새로 만다는 것이 차후에 관리하기가 좋다. 왜냐면 위치한 branch에서 branch를 만들면 가지에서 새로운 가지가 펼쳐지는 것이기 때문이다.
git으로 페어와 협업하기
- git remote add "저장하고자 하는 페어이름" "페어 깃주소" 페어의 저장소를 내 git에 페어로 등록하기
- git remote -v 현재 내 git에 등록된 저장소의 현황 확인하기
- git pull "가져오고자 하는 페어이름" "페어 저장소의 branch" 페어가 작업한 코드들을 내 저장소에 가져오기
-> 이 때 내 코드와 페어 코드간에 충돌이 날 수 있다.
a. 아예 pull이 진행안되는 경우, 내 코드의 변경사항을 아직 저장하지 않은 경우이다. 따라서 내 프로젝트의 변경사항을 git에 저장하고 다시 pull을 진행하면 된다.
b. pull 진행한 이후, 같은 파일 내에 내가 작성한 코드와 페어가 작성한 코드가 다른 경우에, 충돌이 발생하게 된다. 이때 에디터 내에서 내 코드로 저장할지 페어의 코드로 저장할지를 선택할 수 있다.