나홀로 혹은 팀들과 프로젝트 작업을 하면서 관리하는데, 간혹 코드 문법이 오류가 났거나 스스로 이전의
코드를 백업 형식으로 확인을 하고 싶을 때 쓰는 툴이 바로 git이다.
git을 활용만 잘할 수 있다면 오픈 소스 세계에 자유롭게 넘나드는 개발자가 될 수 있으므로,
매우 중요하고 협업에 도움이 될 기술이 될 것이다.
git을 생성하여 commit 및 push를 통해 버전 관리 시스템 이해를 높일 수 있도록 설명하겠다.
git --version
우선 버전이 어떻게 나오는지 확인하고,
git이 설치되지 않았다면, 설치하기를 바란다.
설치에는 두 가지 방법이 있다.
brew install git
터미설 설치둘중 본인이 원하는 설치를 하고 난후 다음 과정을 지나가야만 한다.
github 본인 페이지에 먼저 접속하여 레파지토리의 new 버튼을 클릭하자.
레파지토리 네임에는 자신이 원하는 이름을 정하고 난 후 Create repository 버튼을 누르면 생성된다.
public과 private는 공개와 비공개의 차이니 자기가 원하는 데로 체크를 하면 좋다.
git config --global user.name "본인 깃허브 계정"
git config --global user.email "본인 깃허브 이메일"
터미널에 입력 후
git config --list
계정 닉네임과 이메일이 뜨면 local 환경 설정이 완료 되었다.
Local Repository : 본인의 컴퓨터에 저장된 프로젝트 저장소. ex) Download, Document
Remote Repository : 외부 서버의 프로젝트 저장소. ex) 깃허브 사이트
먼저 git 프로젝트 저장소가 있는 경로에 git init
로 설정합니다.
github의 해당 레파지토리 주소를 복사하여
git remote add origin https://github.com/@@
입력한다.
그리고 staging area 로 파일들을 추가하기 위해 add
를 하자.
git add .
해당 폴더의 모든 파일을 업로드 할 경우
git add 파일명
해당 폴더의 원한는 파일만 업로드 할 경우
여기서 staging area란? 🤷♂️
commit을 하기 전 staging area에 파일이 있어야 한다.
쉽게 비유하자면 중화반점에 배달 주문이 왔다.
배달원은 철가방에 짜장면과 짜장면 곱배기를 담아야 할 것이다.
여기서 철가방이 바로 staging area와 비슷한 보관 가방인 셈이다.
내용물이 곱배기인지 일반인지 구분하기 위해 따로 메모를 하였는데, 여기서 메모장이 commit 메세지인 셈이다.
이제 앞서 언급하듯 해당 파일에 대한 메모장을 남겨놓자.
굳이 꼭 first commit이라고 하지 않아도 된다.
git commit -m “first commit”
이제 마지막으로 Github의 Remote Repository에 올리도록 해보자
git push origin master
위 화면이 떴으면 push 까지 모든 과정이 완료 되었다.
최근 미국 내에서 인종에 대한 갈등이 심해지는 탓에
master 라는 단어가 불정적이다 라는 의견이 많아지고 있었다.
https://www.zdnet.com/article/github-to-replace-master-with-main-starting-next-month/
그러므로 2020년 10월 1 github 측에서는 이를 개선하자는 의미에 master -> main으로 발표 하였다.
물론 master를 활용하였다고 push가 안되는 것은 아니지만, 사회적으로 변화하자는 의미의 메세지이니
오해하지 않도록 하자. (본인도 깜박 잊고 master로 해버렸다..🤦 💥)
만일 main으로 하고 싶을 경우
git branch -M main
git push -u origin main
지금까지 git 레파지토리 push 과정에 대해 알아보았다.
해당 flow chart를 보면 지금까지 과정을 쉽게 이해할 수 있을 것이다.
그럼 여기서 밑의 화살표 git pull / clone 은 무엇일지 궁금할 것이다.
여기서부터 협업 프로젝트에 가장 가까운 과정이라고 보면 좋은 데
다음 시간 git의 pull과 clone, pull request에 대해 설명하도록 하겠다.