Git 사용법
일단 이글은 기존에 SVN(Subversion)만 사용해봤던 필자가 GIT을 처음 접하면서 많이 사용하는 커맨드를 익힌 내용을 공유하여
저와 같은 초심자가 리눅스 환경에서 Git 사용에 있어 도움이 되었으면 하는 바람에 정리하여 남겨봅니다
일단 Git은 저장소 개념의 서버가 필요하고
이를 자신의 PC에서도 구축이 가능하고
또는 온라인에서 서비스하는 GIT서비스인 github.com을 활용하는 두 가지 방법으로 저장소를 준비할 수 있습니다
하지만 Git서버를 직접 운영하는것은 아무래도 설치부터 보안접속이나 외부접속등에 대한 세팅까지 복잡할수 있기에 온라인 저장소인 gihub.com 를 사용하기로 합니다
github.com은 2019년 1월 현재 공개 저장소는 무제한 사용가능하고 비공개 개인저장소도 3명의 공동작업자까지 무료로 사용이 가능합니다
비용이 발생되는 부분은 3명 이상의 공동작업자나 팀 액세스 제어와 몇몇 고급기능이니 개인개발자라면 무료기능으로 충분히 활용할 수 있을 것입니다
여하튼 github.com을 사용하기로 한 이상 계정생성을 우선 진행합니다
계정은 https://github.com 에 접속한뒤 Sign up 을 클릭한뒤
사용자 이름, 이메일주소, 패스워드를 입력하여 생성합니다
생성된 계정으로 로그인하시면 아래와 같은 화면을 보시게 되고 이중 New repository 버튼을 클릭하여 저장소를 생성합니다
저장소는 생성 단계에서 아래와 같은 입력항목이 있으며 Repository name에 원하는 프로젝트명이나 임의 원하는 이름을 입력하고
모두가 볼 수 있어도 된다면 Public을 인증된 공동작업자만 볼수 있게 하려면 Private를 선택합니다
Initialize this repository with a README 항목은 생성시 이 저장소에 대한 설명을 보여주는 마크다운언어 스타일의 README.md 파일을 기본 양식으로 포함할지를 선택하는 것으로 일단 선택합니다
그 아래 Add .gitignore는 이후에 저장소에 소스를 추가할때 자동으로 제외할 확장자명을 명시하는 것으로 이미지와 같이 C를 선택하면 C언어 빌드시 생성되는 .o .a 파일등이 생성되더라도 git에 추가 명령시 c파일이나 h파일등 C개발 필수 코드 파일을 제외하고는 자동으로 적용에 제외되게 됩니다
그리고 라이센스 파일도 저장소 생성단계에서 미리 작성된 라이센스(GPL, LGPL, MIT, BSD등) 양식을 추가하여 이 프로젝트가 어떤 라이센스를 갖는지도 명시 할 수 있습니다
자 그럼 Create repository를 클릭하여 저장소를 생성하면 github.com에서 할 모든 준비는 끝났습니다
이제는 내 PC에 있는 소스코드를 저장소에 올려봐야 하겠죠
일단 git 사용을 위한 패키지를 설치합니다
보통 리눅스에서 우분투를 많이 사용하니 우분투 환경에서 설명하겠습니다
$ sudo apt-get install git
다음으로는 전역 설정을 합니다 전역 설정은 추후 내가 소스를 git 서버로 올릴때 올린이에 대한 정보로 사용 됩니다
[커밋터 정의]
$ git config --global user.name username
[커밋터 이메일 정의]
$ git config --global user.email admin@gmail.com
이제 github에 생성한 저장소를 가져옵니다
[저장소 복제]
$ git clone 저장소URL
저장소URL은 github.com 에서 생성한 프로젝트로 접근하면 아래 Clone or download 버튼을 클릭하여 확인할 수 있습니다
복제 커맨드후 명령을 실행한 경로에 저장소 이름으로 폴더가 생성됩니다
해당 폴더로 이동후
기존에 작성된 코드가 있다면 폴더로 복사하거나 없다면 파일을 작성합니다
파일을 Git에 추가하기 위해서는 몇단계의 과정이 필요합니다
첫째로는 어떤 파일 또는 폴더를 추가할지 알립니다 (add)
둘째로는 추가된 파일 또는 변경된 파일을 로컬저장소에 변경사실을 알립니다 (commit)
셋째로는 실제 추가되거나 변경된 파일을 git 서버에 반영합니다 (push)
[파일 또는 폴더 추가]
$ git add 파일명 또는 폴더명
(만약 현재 폴더의 모든 파일을 추가하고 싶다면 '.' 으로 대신합니다)
[현재 변경되거나 추가되는등 상태 표시]
$ git status
[로컬저장소에 변동사항 명시]
$ git commit
[commit 사항 서버에 적용 / 이때 github 계정 및 비밀번호를 물어본다]
$ git push
참고로 위 명령은 $ git push origin master 의 축약
여기까지 진행한뒤에 github.com에서 자신이 작업한 소스를 확인할수 있으며
1차적으로 여러분의 소스는 GIT을 통해 관리를 하게되게 됩니다
이제 인터넷이 연결된 어느곳의 PC에서 clone명령으로 소스를 내려받고 작업하고 push하여 반영하고
다시 자신의 PC에서 반영된 내용을 업데이트하며 작업을 이어 나갈수 있습니다
[서버 변경사항을 로컬에 반영 / 다른 사람이 수정한 소스가 있다면 내 PC에 이를 반영]
$ git pull
참고로 위 명령은 $ git pull origin master 의 축약
Git은 기본적으로 여러 사람이 협업하는데 그 목적이 있고 위 기능은 가장 기초적인 사용법이며
branch나 merge와 같은 협업 기능을 위해서는 git 가이드사이트에서 참조해볼것을 권유드립니다