Git은 작은 프로젝트부터 큰 프로젝트까지 효율적이고 빠르게 모든 것을 관리하기 위해 고안된 분산형 버전 관리 시스템이다. 자유 그리고 오픈 소스이며 Linux 운영체제의 아버지인 리누스 토발즈에 의해 개발됐다.(버전 관리 시스템이 무엇인지 모른다면?)
이번 글에서는 Git의 사용법에 대해서 알아보도록 하자. Git을 편하게 이용할 수 있는 좋은 GUI들이 많지만 여기서는 커맨드를 사용하도록 하겠다. 독자는 Git이 설치되어 있어야 하고, Github 계정이 있어야 한다. Git은 여기서 설치할 수 있고, Github 계정은 여기서 생성할 수 있다.
Git 설정
모든 프로그램은 사용하기 전에 적절하게 설정해줘야 한다. Git도 마찬가지이다. git config
를 이용해 여러가지를 설정해줄 수 있지만, 여기서는 가장 중요한 사용자 설정만 하자. 콘솔 창을 열고 다음 명령어를 치자.
git config --global user.name "FirstName LastName" # 본인의 이름을 입력하자. git config --global user.email "email@email.com" # 본인의 이메일을 입력하자.
Git 시작하기
Git을 시작하는 법은 두 가지이다. (1) 본인의 컴퓨터에서 시작하거나 (2) Git 서버에 저장되어 있는 프로젝트를 본인의 컴퓨터로 가져오거나. 먼저 로컬 컴퓨터에서 시작해보자.
로컬 컴퓨터에서 시작하는 방법은 어렵지 않다. 프로젝트 폴더에 들어가 다음 명령어를 작성한다.
git init
해당 폴더에 보면 이전에는 없던 .git
이라는 폴더가 생긴 걸 볼 수 있다. 여기에 각 파일의 버전들이 기록되는 것이다.
버전 기록하기
자 그럼 파일을 하나 생성하자. 이전 글에서 살펴봤던 info.txt
를 만들어보자.
info.txt
2019123123 홍길동 컴퓨터공학부
버전을 기록하기 위해서는 먼저 Git에게 버전을 추적할 파일을 알려주어야 한다. 다음 명령어를 사용하자.
git add info.txt # 특정 파일을 지정할 수 있다.
git add
뒤에 추적할 파일명을 써주면 된다. 지금은 단일 파일이라 명령어가 길진 않지만 수정되는 파일이 여러 개라면 일일이 써주는 것이 귀찮고 힘들 것이다. 그때는 *
을 사용하면 된다.
git add * # 수정된 모든 파일을 추적할 땐 *을 사용한다.
이 명령어를 사용하면 스테이지(stage)라는 영역에 해당 파일을 추가하게 된다. 간단히 보자면, 파일의 변경 사항을 확정하기 전 임시로 올려놓는 단계이다. 여기서 git status
를 보면 해당 파일이 삭제되었는지, 추가되었는지, 수정되었는지 등을 알 수 있다.
git status
기록을 확정하려면 git commit
을 하면 된다. 추가적으로 -m
옵션을 주어 해당 변경사항에 대해 기록할 수 있다.
git commit -m "Message" # 되도록 의미 있는 메시지를 써두자
git log
를 이용하면 히스토리를 확인할 수 있다. 커밋이 정상적으로 생성됐음을 알 수 있다.
서버에 반영하기
자 이제 서버에도 반영해보자. 먼저 Git에게 원격 저장소가 어디있는지 알려줘야 한다. Github를 이용해 새로운 프로젝트를 생성하자.
해당 주소를 복사하고, 다음 명령어를 입력한다.
git remote add origin "Your URL" # 복사한 URL을 붙여넣는다.
원격 저장소를 설정해 주었으니, 이제 원격 저장소를 로컬과 동기화시켜야 한다.
git push origin master
모든 작업이 끝났다. 다음 글에서는 다른 컴퓨터에서 작업하고, 모두 동기화하는 법을 알아보자.
'Outdated > Column' 카테고리의 다른 글
[Computer Column] 위상정렬(topological sort) (0) | 2019.06.21 |
---|---|
[Computer Column] 다익스트라 알고리즘(dijkstra algorithm) (0) | 2019.05.16 |
[Computer Column] Git Flow (0) | 2019.03.20 |
[Computer Column] Git - 2 (0) | 2019.03.17 |
[Computer Column] 버전 관리 시스템(VCS, Version Control System) (0) | 2019.03.16 |