이번 글에서는 GIT을 처음 설치하고 작업을 시작하기 전에 해야 하는 기본 설정과, 원격 저장소에서 로컬 저장소로 복제 하는 법, 새로운 저장소를 만들고 시작하는 방법을 다루도록 하겠습니다.
기본 환경설정하기
Commiter 정보 입력하기
Commiter의 이름과 이메일 주소를 입력합니다. 여기에 입력한 정보는 Commit을 할 때마다 로그에 함께 기록됩니다.
git config --global user.name "Your Name" git config --global user.email "Your E-mail Address"
--global 옵션을 지정하지 않으면 현재 로컬 저장소에 대해서만 Commiter 정보를 적용합니다.
에디터 지정하기
Commit log를 작성하거나, Rebase 등의 작업을 할 때 사용할 Editer를 지정합니다. vim을 사용하는 편이 가장 무난합니다. GUI 기반의 에디터를 지정할 경우, SSH 등으로 접속해서 원격에서 작업하는 경우 사용할 수 없습니다.
git config --global core.editor vim
색상 강조 사용하기
Commit log 등을 볼 때, 색상을 사용하여 강조 표시해 줍니다.
git config --global color.ui true
Diff 화면 탭 크기 지정하기
Diff 화면(git diff)에서 표시되는 탭(Tab) 문자의 크기를 4로 지정합니다.
git config --global core.pager 'less -x4'
AutCRLF 설정하기
서로 다른 OS를 오가며 작업을 하는 경우, OS마다 line ending이 다르기 때문에 쓸데없는 변경사항이 Commit에 반영되거나 Clone시 문제가 발생할 수 있습니다. 이를 방지하기 위해 AutoCRLF를 설정하도록 합니다.
git config --global core.autocrlf <설정값>
<설정값>은 Git이 구동되는 OS 및 개발 환경에 따라 다음과 같이 서로 다르게 지정합니다.
- Windows 환경: true (Commit시 CRLF를 LF로 변환 + Clone시 LF를 CRLF로 변환)
- Linux 환경: input (Commit시 CRLF를 LF로 변환)
- Windows 전용 프로젝트: false (아무런 변환도 수행하지 않음)
※ WSL(Windows Subsystem for Linux) 환경인 경우 'input'으로 지정해야 합니다.
환경 설정 확인하기
전역 환경설정을 확인하려면 --list 옵션을 붙이거나, user.name과 같은 변수명을 명시하면 됩니다.
git config --global --list git config --global user.name
원격 저장소와 연동하기
원격 저장소 복제해오기 - clone
원격 저장소를 로컬로 복제해서 로컬 저장소를 생성합니다. 이 때, 원격 저장소에 여러 개의 Branch가 있는 경우 master branch만 복제해 옵니다.
git clone {저장소 주소}
원격 저장소의 변경사항을 로컬 저장소로 가져오기 - pull, fetch
Pull 명령을 사용하면, 원격 저장소의 변경사항 중 로컬 저장소에 반영되지 않은 내용을 가져와서 현재 Branch에 병합합니다.
아무 옵션을 주지 않으면, 원격 저장소의 master branch를 가져옵니다.
git pull
다음과 같이 원격 저장소 별칭과 branch 이름을 명시하여 Pull을 수행할 수 있습니다. 이 경우, 원격 저장소의 특정 branch 변경사항을 로컬 저장소의 현재 branch에 가져와 병합합니다.
git pull origin [Remote branch name]
Fetch 명령의 경우 원격 저장소의 변경사항을 가져오기만 하고, 현재 Branch에 병합은 수행하지 않습니다. 대개 복잡한 병합의 경우 fetch를 사용하기보다는 임시 Branch를 새로 만들어서 Pull을 수행하고, Rebase 명령을 통해 작업 branch와 병합하는 방법을 사용합니다.
로컬 저장소 생성하고 설정하기
대개 GIT으로 작업을 할 때는 원격 저장소를 Clone 명령을 통해 로컬 저장소로 복제한 뒤에 작업을 시작하므로 로컬에 저장소를 생성하거나 원격 저장소 주소를 임의로 입력하는 등의 명령은 거의 사용하지 않습니다.
다음 명령어들은 로컬에서 새로운 GIT 저장소를 생성하고 설정하는 명령어들입니다.
GIT은 '분산' 버전관리 시스템이기 때문에 원격 저장소의 존재는 선택사항이며, 따라서 배포가 필요 없는 개인 프로젝트의 경우 로컬에서만 GIT을 활용하여 개발을 진행할 수 있습니다.
로컬 저장소 생성하기
로컬에 빈 GIT 저장소를 생성하는 명령입니다. 이 명령을 입력하면 현재 디렉토리에 .git 디렉토리가 생성되고, 기본 환경설정이 저장됩니다.
git init
원격 저장소 주소 추가하기
init 명령어를 통해 생성한 로컬 저장소에는 원격 저장소에 대한 정보가 없으므로 Push나 Pull과 같은 명령을 사용할 수 없습니다. 다음 명령을 통해 원격 저장소의 주소 정보를 입력하면 원격 저장소와 연동이 가능합니다.
git remote add {원격 저장소 별칭} {원격 저장소 주소}
사용 예시는 다음과 같습니다. 'git@git.tuwlab.com:batto.git'의 주소를 갖는 원격 저장소를 'origin'이라는 별칭으로 등록합니다.
git remote add origin git@git.tuwlab.com:batto.git
원격 저장소 주소 수정하기
이미 등록된 원격 저장소 별칭에 저장된 원격 저장소 주소를 수정하기 위해서는 다음 명령어를 사용합니다.
git remote set-url {원격 저장소 별칭} {변경할 원격 저장소 주소}
사용 예시는 다음과 같습니다. 'origin'이라는 별칭을 갖는 이미 등록된 원격 저장소의 주소를 'git@git.tuwlab.com:batto.git'으로 변경합니다.
git remote set-url origin git@git.tuwlab.com:batto.git
등록된 원격 저장소 목록 확인하기
등록된 모든 원격 저장소의 별칭과 주소를 확인할 수 있습니다.
git remote -v