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