1. git이란?
하나의 프로젝트를 진행할 때, 보통 여러명의 개발자가 동시에 작업을 진행한다. 모두 작업을 끝마치고 서로의 소스코드를 붙이려고 할 때 어떻게 취합하는게 좋을까? USB? 메일로? 취합만 하는데도 머리가 지끈지끈 아파온다. (예전엔 정말 이렇게 했다.. 끔찍)
그래서 스마트하게 소스를 관리해보자! 라고해서 나온 개념이 형상 관리(Configuration Management)이다. 대표적으로 svn, git이 있는데, 대세는 역시 갓 git
git을 간단히 설명해보면 작업의 base가 되는 master branch에서 여러명의 개발자가 각각 새로운 branch를 따면, 각각의 새로운 작업 영역이 생기게 된다. 여기서 branch는 하나의 작업 영역, 하나의 소스코드 버전이라고 이해하면 된다.
그리고 작업이 마무리되어 하나하나 master branch로 합치기 위해 pull request를 하는데, "나 작업 다 끝났으니 내 소스코드 리뷰해보고 문제없으면 master branch로 합칠게요" 라는 뜻이다. 이렇게 하나하나 master branch로 합쳐지면 수명~수십명의 개발자가 각각 개발한 소스코드가 아주 스마트하게 master branch로 모아지게 된다.
pull request를 날릴 때, master branch vs 새로운 branch의 소스코드 차이(뭐가 추가되고 뭐가 빠졌는지)를 너무나 잘 보여줘 굳이 모든 소스코드를 볼 필요 없이 바뀐 부분만 보고 빠르게 리뷰를 할 수 있다.
2. github란?
github(git + hub) 는 git으로 관리할 소스코드를 올릴 원격 저장소를 뜻한다. 내 컴퓨터에서 소스코드를 github의 내 repository 저장소에 push해 올리고, 다른 컴퓨터에서 github의 내 repository에 올라가있는 소스코드를 내려받아 작업을 시작할 수 있다.
3. git 다운로드 받고 github 가입하기
아래 링크에서 운영체제 별 git을 다운로드 받을 수 있다.
아래 링크에 github에서 이메일로 계정을 만들 수 있다. 가입은 이메일, 비밀번호만 적으면 끝, repository를 만드는건 이름만 적으면 끝이니 이상의 불필요한 설명은 생략한다. 아래 링크에서 계정을 하나 만들고 개인 repository도 하나 만들어보자 (모두 무료다)
4. git 기본 명령어 알아보기
이제 git 기본 명령어를 알아보려한다. 이 정도 기본 명령어만 알아도 기본적으로 github에 소스코드를 올리고 변경하고 로컬 소스코드와 싱크를 맞추는 필수적인 작업들을 할 수 있다. 이외에 명령어도 많지만 옵션일 뿐이고, 이 기본 명령어가 전체 사용하는 비율의 90%를 차지하니 귀찮거나 시간이 모자라면 이것만 봐도 좋다.
1. github에 repository를 만들고 여기다가 내 새로운 소스코드를 관리한다.
사용할 커맨드 : git clone
3.에서 github에 가입하고 repository를 하나 만들었으면, repository에 들어가 Clone or download 버튼을 누르자. 그럼 어떤 주소가 뜨는데 이 주소가 내가 만든 repository의 주소이다.
그리고 터미널을 켜서 git clone <주소> -b <브랜치명> <이름> 을 실행하면 <이름> 디렉토리가 생긴다. 이게 작업 영역이다.
git clone https://github.com/korband78/kutility.git -b master first_repo
2. 새로만든 repository에 변경된 소스코드를 업로드하기
사용할 커맨드 : git add --all, git commit -m "message", git push origin master
생성된 작업 영역에서 소스코드를 추가해보자. 이제 변경된 소스코드를 다시 repository에 반영하려면 아래와 같은 과정을 거쳐야한다.
2-1. git에게 소스코드 변경한 내역들을 알려주기
git add --all
# 또는
git add .
이 명령어를 수행하면 git이 소스코드내 변경된 내역들을 알게된다. 해주지 않으면 git은 소스코드가 변경됐는지 알 수가 없다.
2-2. 변경된 작업 내역 제출하기
git commit -m "쓰고 싶은 메세지"
2-1.에서 변경한 내역들을 제출하게 된다. 이때 제출한 내역은 로컬에만 반영되어 있는 상태이다. 이를 서버 repository에 반영하려면 2-3.의 git push를 해줘야한다.
2-1. 2-1.는 보통 기능 단위로 수행한다. 예를 들면 버튼을 누르면 주의 팝업창이 뜨는 기능을 추가한다고하면, 다른 기능은 나중에 하고, 일단 이 기능을 추가하는 것만 commit하는 것이다. 이렇게 쪼개야 추후에 문제가 생겼을 때 추적하기 쉽다.
2-3. 변경된 작업내역 github repository에 업로드하기
git push origin master
github repository에도 변경된 소스코드가 업데이트 된다. 뭔가 꼬여서 강제로 업로드하고 싶을 땐 git push -f origin master 처럼 -f 옵션을 붙여준다.
3. github repository의 작업 내역들을 내 로컬PC로 동기화 시키고 싶을 땐
작업 내역이 아에 없으면 1. 과 동일하게 git clone 을 해주고
git clone https://github.com/korband78/kutility.git -b master first_repo
작업 내역이 있으면 단순히
git pull
만 해주면 repository => 로컬PC로 작업 내역이 동기화 된다.
이 정도 명령어가 git 사용의 90%이상 차지하므로 이것만이라도 알아두자 :)
'개발의 정석 > 툴, 기타' 카테고리의 다른 글
[#git] 여러 커밋(commit) 하나로 합치기 (3) | 2020.03.26 |
---|---|
[#git] 강제로 이전 커밋(commit) 상태로 되돌리기 (0) | 2020.03.26 |
[#github] 사이트에 커스텀 도메인 등록하기 (0) | 2020.03.25 |
[#github] 트래픽/용량 걱정없는 무료 웹 호스팅하기 (1) | 2020.03.22 |
[#github] jsdelivr CDN 서버 무료로 사용하기 (1) | 2020.03.22 |
댓글