Skip to content
TUWLAB.com
모든 게시물에 대하여 '링크'
방식의 퍼가기만 허용합니다.
한양대학교 전자통신컴퓨터공학부
바라미
  • 1747
  • 2717834
DNS Powered by DNSEver.com
일반

[GIT] 기본 환경 설정 및 작업 시작하기: config, clone, init, pull, fetch, remote

Posted 2014. 10. 23 Updated 2019. 01. 30 Views 13374 Replies 0

이번 글에서는 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

 

TAG •
서비스 선택
이용중인 SNS 버튼을 클릭하여 로그인 해주세요.
SNS 계정을 통해 로그인하면 회원가입 없이 댓글을 남길 수 있습니다.
댓글
?
Powered by SocialXE

List of Articles
번호 분류 제목 글쓴이 최근 수정일 조회 수
27 일반 MediaWiki 기본 문법 TUW 2014.04.23 15992
26 일반 전력선 통신(PLC; Power Line Communication) TUW 2014.04.16 13794
25 일반 트랜지스터의 회로기호와 핀 명칭 file TUW 2017.06.02 13617
» 일반 [GIT] 기본 환경 설정 및 작업 시작하기: config, clone, init, pull, fetch, remote TUW 2019.01.30 13374
23 일반 CPU 오버클럭에 관한 기본 상식 TUW 2014.04.20 12576
22 일반 형광등기구 안정기 교환 file TUW 2021.12.28 12203
21 일반 [GIT] Submodule (Nested Repository) 사용하기 file TUW 2020.08.28 11532
20 일반 [AutoHotkey] 소개와 설치 및 기본 설정 - GUI 예시, 기본 에디터 변경 file TUW 2021.12.28 11525
19 일반 [포토샵] 모자이크 효과 적용하기 file TUW 2017.06.02 11270
18 일반 Guided Text Input 구현 1 file TUW 2017.06.02 11244
17 일반 네이트온 친구삭제 확인하기 file TUW 2017.06.02 10899
16 일반 [C++] Template Class의 정의(Definition)와 구현(Implementation)은 한 파일 안에 있어야 한다. TUW 2015.11.26 10792
15 일반 페이스북 글 입력 필드 분석 file TUW 2017.06.02 10676
14 일반 4선식 터치스크린의 원리 file TUW 2017.06.02 10584
13 일반 하드디스크 작동 모습 TUW 2021.12.28 10435
12 일반 Eclipse에 C/C++ 개발환경 구축하기 file TUW 2017.06.02 10305
목록
Board Pagination Prev 1 2 3 4 Next
/ 4

Powered by Xpress Engine / Designed by Sketchbook

sketchbook5, 스케치북5

sketchbook5, 스케치북5