Section 1.8: Git 설치하기

Git 의 유용한 기능들을 이용하기 위해서는 Git을 시스템에 먼저 설치해야만 한다. 설치하는 여러 방법 중에는 크게 두가지가 많이 쓰이는데, 첫번째는 소스(source) 로부터 설치하는 방법이고 두번째는 사용자의 플랫폼에 맞게 만들어진 기존 패키지로부터 설치하는 방법이다.

소스(Source) 로부터 설치하기

가능하기만 하다면, 일반적으로 소스로부터 설치하는 방법이 최신의 Git 버전을 사용할 수 있기 때문에 가장 유용하다고 할 수 있다.

Git 의 매 버전들은 유용한 UI 개선사항 등이 주로 포함되기 때문에, 소스를 컴파일하여 설치하는데 익숙하기만 하다면 이 방법을 이용하는 것이 좋을 것이다.

특히, 다수의 리눅스 배포판들이 상당히 오래된 패키지들만을 기본적으로 제공하고 있기 때문에, 최신 distro 를 사용하거나 백포트(backport) 를 이용하지 않는 이상, 소스로부터 설치하는 것이 가장 좋은 선택이 될 것이다.

To install Git 을 설치하려면, Git 이 의존성을 가지고 있는 다음 라이브러리들이 먼저 설치되어 있어야 한다: curl, zlib, openssl, expat, and libiconv.

예를 들어, yum 이나 (Fedora 등의 경우) apt-get (Debian 기반의 배포판들) 이 설치된 시스템을 사용중이라면, 아래 명령어들 중 적합한 명령어를 사용하여 필요한 의존 패키지들을 한번에 설치할 수 있다:

$ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev

위와 같은 방법을 통해 필요한 모든 의존 패키지를 설치하고 나면, 다음 Git 웹사이트에 접속하여 최신 스냅샷을 다운받을 수 있다: http://git-scm.com/download

이제, 컴파일을 수행한 후 설치한다:

$ tar -zxf git-1.7.2.2.tar.gz $ cd git-1.7.2.2 $ make prefix=/usr/local all $ sudo make prefix=/usr/local install

위 과정이 모두 완료되고 나면, 이제는 업데이트 필요시 Git 자체도 Git 을 통해 얻어올 수 있다:

$ git clone git://git.kernel.org/pub/scm/git/git.git

Linux 에서 설치하기

Linux 에서 Git 을 바이너리 인스톨러를 통해 설치하고자 한다면, 사용중인 배포판에서 기본적으로 제공하는 기본 패키지 관리 도구를 이용하면 된다.

Fedora 를 사용중일 경우, yum 을 사용하도록 한다:

$ yum install git

혹은 Ubuntu와 같은 Debian 기반의 배포판을 사용중이라면, apt-get 을 이용한다:

$ apt-get install git

Mac 에서 설치하기

Mac 에서의 Git 설치는 크게 세가지의 쉬운 방법이 제공된다. 가장 쉬운 방법으로는, 다음 SourceForge 페이지에서 다운로드 가능한 GUI 기반의 인스톨러를 이용하는 방법이 있다:

http://sourceforge.net/projects/git-osx-installer/

널리 이용되는 또다른 방법 하나는 MacPorts (http://www.macports.org) 를 이용하여 Git을 설치하는 것이다. MacPorts 가 이미 시스템에 설치되어 있다면, 다음과 같은 방법으로 Git 을 설치할 수 있다:

$ sudo port install git +svn +doc +bash_completion +gitweb

모든 추가 variant들을 선택할 필요는 없지만, Git을 Subversion 저장소와 연동해야할 경우가 있다면 +svn 정도는 선택하는 것도 좋을 것이다.

Homebrew (http://brew.sh/) 는 Git 을 설치할 수 있는 또다른 대안이다. Homebrew 가 이미 시스템에 실치되어 있다면, 다음과 같은 방법으로 Git 을 설치할 수 있다:

$ brew install git

Windows 에서 설치하기

Windows 에서 Git 을 설치하는 것은 매우 간단하다. msysGit 프로젝트는 Git 을 설치하기 위한 더욱 간단한 설치 방법들 중 하나이다.

설치 exe 파일을 GitHub 페이지에서 다운받아 실행하기만 하면 된다: http://msysgit.github.io

본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)

반응형

Section 1.7: Git 과 SSH 연동하기

윈도우에서는 Git Bash 를, Mac 이나 Linux 에서는 터미널을 열어 아래에 설명할 작업들을 수행한다.

SSH key 를 새로이 생성하기 전에, 기존에 이미 생성되어 있는 SSH key 가 있는지를 다음과 같은 방법으로 확인할 수 있다.

~/.ssh 디렉토리의 내용물들을 열람하기:

$ ls -al ~/.ssh # ~/.ssh 디렉토리 내의 모든 파일이 표시된다

위 명령어의 결과 목록에서 기존에 생성해놓은 public SSH key 가 있는지를 확인한다. 기본적으로 public key 파일들은 다음과 같은 이름들 중 하나를 가지게 된다:

  • id_dsa.pub
  • id_ecdsa.pub
  • id_ed25519.pub
  • id_rsa.pub

위 과정을 통해 Bitbucket 이나 GitHub (혹은 유사한 다른 서비스 등) 에서 본인 계정에 사용해도 될 public / private key 조합이 이미 생성되어 있음을 확인했다면, 해당 id_*.pub 파일 내용을 복사해서 사용하면 된다.

만약 기존에 생성해놓은 파일이 없다면, 아래와 같은 명령어를 입력해 새로운 public / private key 조합을 생성할 수 있다:

$ ssh-keygen

위 명령어 입력 후, Enter 혹은 Return 키를 한번 더 눌러 기본 파일 저장 위치를 사용하도록 한다. 암호(passphrase) 를 사용할지 물어보면 사용하길 원하는 암호를 입력하여도 되고, 그냥 암호 없이 빈 상태로 두고 계속 진행하여도 된다.

사용자의 SSH key 는 ssh-agent 에 정상적으로 추가가 되어야 한다. ssh-agent 가 현재 동작중이 아니라면 백그라운드에서 돌도록 실행한다:

$ eval "$(ssh-agent -s)"

이제 SSH key 를 ssh-agent 에 추가한다. 아래 명령어에서 id_rsa 부분에 사용자의 실제 private key 파일 이름을 정확히 기술해 주어야 한다는 점에 유의하자:

$ ssh-add ~/.ssh/id_rsa

기존 저장소의 upstream 원격 연결 방식을 HTTPS 에서 SSH 로 변경하고 싶다면 아래의 명령어를 실행한다:

$ git remote set-url origin ssh://git@bitbucket.server.com:7999/projects/your_project.git

새로운 저장소로부터 SSH 를 통해 clone 을 해오고 싶다면 아래의 명령어를 사용한다:

$ git clone ssh://git@bitbucket.server.com:7999/projects/your_project.git
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)

반응형

Section Section 1.6: 특정 명령어에 대해 알아보기

특정 git 명령어에 대해 추가적인 정보를 확인해 보려면 (해당 명령어가 하는 역할이나 명시 가능한 옵션들 및 기타 다양한 참고 문서 등), --help 옵션이나 help 명령어를 사용할 수 있다.

예를 들어, git diff 명령어에 대한 모든 제공 가능한 정보를 보고싶다면, 아래와 같이 수행한다:

git diff --help git help diff

마찬가지로, status 명령어에 대한 모든 제공 가능한 정보도 아래와 같이 확인할 수 있다:

git status --help git help status

주로 사용되는 커맨드라인 옵션들에 대한 간략한 설명만을 보고싶다면 -h 옵션을 사용하면 된다:

git checkout -h
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)

반응형

Section 1.5: upstream 원격 저장소 설정하기

(Github 에서 오픈소스 프로젝트를 fork 한 경우처럼) fork 된 Git 프로젝트를 clone 한 경우, 해당 프로젝트의 upstream 저장소에 대해 직접 push 할 수 있는 권한은 없을지라도 push 및 fetch 수행을 위한 설정이 필요하다.

우선 원격 저장소 이름들을 확인한다:

$ git remote -v origin https://github.com/myusername/repo.git (fetch) origin https://github.com/myusername/repo.git (push) upstream # 이 라인은 나타나지 않을 수도 있다

위 명령을 실행하여 upstream 라인이 나타난 경우에는 (Git 버전에 따라 다르다) 아래와 같이 URL 을 설정해 주어야 한다(현재는 URL 부분이 빈 상태이다):

$ git remote set-url upstream https://github.com/projectusername/repo.git

upstream 라인이 나타나지 않은 경우나, 추가적으로 친구나 동료의 fork 된 프로젝트를 원격 저장소로 등록하고 싶은 경우에는 아래와 같이 추가할 수 있다:

$ git remote add upstream https://github.com/projectusername/repo.git $ git remote add dave https://github.com/dave/repo.git

역주: 첫번째 명령어는 upstream 저장소를 등록하며, 두번째 명령어는 dave 라는 친구의 fork 된 프로젝트를 'dave' 라는 이름의 원격 저장소로 등록한다

본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)

반응형

Section 1.4: 사용자 이름과 이메일 주소 설정하기

작성한 commit에 올바른 작성자(author) 의 이름과 이메일 주소를 포함하여 기록하기 위해서는, 본인에 대한 신원 정보를 commit을 생성하기 전에 설정해 놓아야 한다.

이 신원 정보는 원격 저장소에 push 할 때 사용되는 인증 정보와는 아무 관련이 없다

(예: GitHub, BitBucket, 혹은 GitLab 원격 저장소에 push 할때 입력하는 계정 정보와는 별개이다)

모든 저장소에 대해 동일한 신원 정보를 설정하기 위해서는, git config --global 명령을 사용할 수 있다

이 명령어는 입력된 신원 정보를 사용자의 .gitconfig 파일에 저장해놓게 된다. 예: $HOME/.gitconfig 혹은 %USERPROFILE%\.gitconfig (윈도우의 경우)

git config --global user.name "Your Name" git config --global user.email mail@example.com

하나의 저장소에 대해서만 신원 정보를 설정해 놓으려면, 해당 저장소 내에서 git config 명령을 사용하면 된다.

이 방법은 신원 정보를 개별 저장소 내의 $GIT_DIR/config 파일 (예: /path/to/your/repo/.git/config) 에 저장하게 된다.

cd /path/to/my/repo git config user.name "Your Login At Work" git config user.email mail_at_work@example.com

작업중인 저장소 내 config 파일에 저장된 설정값들이 있다면, 이 값들이 전역 config 에 저장된 값들보다 우선하여 사용된다.

팁: 만약 여러개의 다양한 신원 정보를 사용 중이면서 (오픈소스 활동시에 사용하는 신원 정보, 직업 관련 업무에 사용하는 신원 정보, 개인적인 저장소에서 사용하는 신원 정보 등, ...),

작업중인 각각 다른 저장소마다 적합한 신원 정보를 설정하는 것을 까먹지 않기 위해서는 아래 방법을 사용한다:

  • 전역 신원 정보를 아예 삭제하기
    git config --global --remove-section user.name git config --global --remove-section user.email
Version ≥ 2.8
  • Git 작업시 전역 신원 정보는 참조하지 않고 작업중인 저장소 내의 설정에서만 신원 정보를 검색하도록 하기 위해서는:
    git config --global user.useConfigOnly true

이와 같은 방법을 사용하면, 사용자가 작업중인 저장소에 user.name 과 user.email 정보를 설정하지 않고 commit 을 작성 시 아래와 같은 메시지를 표시하게 된다:

no name was given and auto-detection is disabled no email was given and auto-detection is disabled
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)

반응형

Section 1.3: 코드 공유하기

자신의 코드를 공유하기 위해서는 로컬 저장소 내용을 복제할 저장소를 원격 서버에 생성해야 한다.

원격 서버의 사용 공간을 최소화하기 위해, .git 객체만 가지고 있고 파일시스템에 작업 사본은 따로 생성하지 않는 "bare repository" 를 생성하도록 한다.

역주: git init 과 달리 git init --bare 는 파일을 수정하거나 commit 할 수 있는 작업 디렉토리 (working directory) 가 없는 상태로 만들어 집니다

StackOverflow 링크 참고

이렇게 생성한 원격 저장소를 "upstream server" 로 설정함으로써 앞으로 업데이트 될 내용을 다른 프로그래머들과 쉽게 공유할 수 있게 된다.

원격 서버에서:

git init --bare /path/to/repo.git

로컬 머신에서:

git remote add origin ssh://username@server:/path/to/repo.git

(ssh: 부분은 원격 저장소에 접근하기 위한 여러가지 가능한 방법 중 하나임을 유의하자.)

이제 로컬 저장소의 내용을 원격 저장소에 아래와 같이 복사할 수 있다:

git push --set-upstream origin master

--set-upstream (혹은 -u) 옵션을 추가하면 upstream (tracking) 레퍼런스를 추가하여 git pull 명령어를 이후부터 파라미터 없이 동작하게 설정할 수 있다.

본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)

반응형

Section 1.2: 저장소를 Clone 하기

git clone 명령어는 다른 서버에 존재하는 Git 저장소를 로컬 머신에 복사하기 위해 사용된다. 예를 들어, GitHub 에 있는 프로젝트를 아래와 같이 clone 할 수 있다:

cd <path where you would like the clone to create a directory> git clone https://github.com/username/projectname.git

마찬가지로, 아래와 같이 BitBucket 프로젝트도 clone 할 수 있다:

cd <path where you would like the clone to create a directory> git clone https://yourusername@bitbucket.org/username/projectname.git

위 명령어들은 프로젝트이름이라는 이름의 디렉토리를 로컬 머신에 생성하고 원격 저장소의 모든 파일을 다운로드 받는다.

여기서 모든 파일이라고 하면 해당 프로젝트의 모든 소스파일 뿐만 아니라, 프로젝트의 전체 히스토리와 환경설정이 포함된 .git 서브디렉토리까지를 포함한다.

다운로드 받을 디렉토리의 이름을 다르게 지정하려면 (예:MyFolder):

git clone https://github.com/username/projectname.git MyFolder

또는, 아래와 같이 현재 디렉토리에 원격 저장소 내용을 바로 다운로드 할 수도 있다:

git clone https://github.com/username/projectname.git .

노트:

  1. 다운로드 받을 디렉토리의 이름을 다르게 지정할 때는, 비어있거나 현재 존재하지 않는 디렉토리를 지정해야 한다.
  2. 또한 clone 시에는 아래와 같이 ssh 를 이용할 수도 있다:
    git clone git@github.com:username/projectname.git

https 와 ssh 를 이용하는 방법은 기본적으로 동일하지만, GitHub 와 같은 몇몇 호스팅 서비스들에서는 ssh 보다 https 를 사용하기를 권장한다.

본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)·

반응형

Section 1.1: 첫번째 저장소 (repository) 를 만든 후, 파일을 add 하고 commit 하기

명령어 입력줄을 통해 Git 이 설치되어 있는지를 먼저 아래와 같이 확인해보자:

모든 운영체제에서:

git --version

UNIX 계열 시스템에서:

which git

아무것도 반환되지 않거나, 명령어가 인식이 되지 않는다면 설치 프로그램을 다운받고 실행하여 Git을 시스템에 설치해야 할 것이다.

Git 홈페이지에 가면 매우 명확하고도 이해하기 쉬운 설치 방법들이 소개되어 있다.

Git 을 설치한 다음에는, 자신의 사용자 이름(username) 과 이메일 주소 정보를 설정하자. 이 작업은 commit 을 작성하기 전에 수행해야 한다.

역주: 사용자 이름과 이메일 주소 정보 설정 방법은 1.4 섹션에서 설명하고 있습니다

Git 설치가 완료되면, 버전 관리를 하고자 하는 디렉토리로 이동한 다음 아래와 같이 빈 Git 저장소(repository) 를 생성한다:

git init

이는 .git 이라는 이름의 Git 동작에 필요한 기본 설비가 포함된 숨겨진 디렉토리를 생성한다.

다음으로, Git 이 새로 만들어진 저장소에 어떤 파일들을 추가할지 확인한다; 이 작업은 특별히 주의를 기울일 필요가 있다:

git status

위 명령의 결과 파일 목록을 확인하고, Git 에게 버전 관리를 맡길 파일들을 추가한다 (암호 등과 같이 민감한 정보가 포함된 파일이나, 중요하지도 않으면서 저장소를 어지럽히기만 하는 파일들을 추가하는 것은 피하도록 한다):

git add <file/directory name #1> <file/directory name #2> < ... >

만약 파일 목록에 나타난 모든 파일들이 저장소에 접근하는 사람들에게 공유되어야 한다면, 아래의 간단한 명령어로 현재 디렉토리와 하부 디렉토리들의 모든 파일들을 저장소에 추가할 수 있다:

git add .

위 명령어들은 버전 관리에 추가될 파일들로 하여금 "stage" 라는 과정을 통 하여, 해당 파일들이 여러분의 첫 번째 commit 에 기록될 수 있도록 준비한다.

버전을 관리할 일이 전혀 없는 파일들의 경우에는 add 명령을 수행하기 전에 .gitignore 라는 이름의 파일을 만들고 해당 파일에 무시할 파일들 목록을 기술하도록 한다.

지금까지 추가한 모든 파일들을 commit 메시지와 함께 다음과 같이 기록한다:

git commit -m "Initial commit"

이는 -m 옵션 이후에 기술된 commit 메시지를 포함하는 새로운 commit을 생성한다. commit 이란 전체 프로젝트에 대한 저장본 혹은 스냅샷과 같은 개념으로 이해하면 된다.

이제 이 commit 은 원격 저장소로 push 혹은 upload 할 수 있으며, 나중에 필요할 경우 다시 해당 commit 으로 돌아올 수도 있다.

commit 시에 -m 파라미터를 생략하면, 여러분의 기본 설정된 편집기가 뜨도록 되어 있어 해당 편집기에서 commit 메시지를 수정 및 저장할 수 있다.

원격 저장소 추가하기

새로운 원격 저장소를 추가하려면, Git 로컬 저장소가 위치하고 있는 디렉토리에서 git remote add 명령어를 터미널에 입력하면 된다.

git remote add 명령어는 두개의 파라미터를 받는다:

  1. 원격 저장소 별칭, 예) origin
  2. 원격 저장소 URL, 예) https://<your-git-service-address>/user/repo.git
git remote add origin https://<your-git-service-address>/owner/repository.git

노트: 원격 저장소를 git remote add 로 추가하기 전에, 해당 원격 Git 서비스에 필요한 저장소를 먼저 생성해 놓아야 한다. 원격 저장소를 추가한 다음부터는 commit을 push 및 pull 할 수 있게 된다.

본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/ (CC BY-SA)

반응형

+ Recent posts