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

Section 2.4: 로그 내용을 한줄씩만 표시하기

git log --oneline

위 명령어는 모든 커밋들에 대해 해시값의 축약 버전과 커밋 메시지만을 출력한다. 옵션 이름에서 유추할 수 있듯이, 한 줄마다 커밋 정보가 하나씩 표시된다.

예제 (Free Code Camp 저장소에서 발췌, 2-1 챕터의 예제와 동일한 코드 부분):

87ef97f Merge pull request #7724 from BKinahan/fix/where-art-thou eb8b729 Fix 'its' typo in Where Art Thou description e50ff0d Merge pull request #7718 from deathsythe47/fix/unnecessary-comma 2652d04 Remove unnecessary comma from CONTRIBUTING.md 6b01875 Merge pull request #7667 from zerkms/patch-1 766f088 Fixed assignment operator terminology d1e2468 Merge pull request #7690 from BKinahan/fix/unsubscribe-crash bed9de2 Merge pull request #7657 from Rafase282/fix/

마지막 n개에 대해서만 커밋 로그가 나타나게 하고 싶다면, 위 명령어에 n개에 해당하는 파라미터를 전달하기만 하면 된다. 예를 들어, 마지막 2개의 커밋 로그만 보고 싶다면 아래와 같이 입력한다.

git log -2 --oneline

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

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

Section 2.3: 로그에 색상입히기

git log --graph --pretty=format:'%C(red)%h%Creset -%C(yellow)%d%Creset %s %C(green)(%cr) %C(yellow)<%an>%Creset'

format 옵션은 사용자가 자신이 원하는 형태의 출력 양식을 지정할 수 있도록 한다:

파라미터 설명
%C(색 이름) 이후 출력될 내용에 입힐 색깔
%h 혹은 %H 축약된 버전의 커밋 hash (%H 는 축약되지 않은 버전의 커밋 hash)
%Creset 이후 출력될 내용의 색깔을 터미널 기본 색상으로 초기화한다
%d ref (커밋을 가리키는 로컬 및 원격 브랜치 혹은 태그 등) 의 이름
%s 주제(subject) [커밋 메시지]
%cr 커밋 날짜 (현재로부터의 상대 시간)
%an 작성자 이름

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

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

Section 2.2: 로그를 더 예쁘게 출력하기

Git 에서 제공하는 로그를 더욱 보기 좋은, 그래프 형식의 구조로 표시하기 위해서 아래와 같은 명령어를 사용할 수 있다:

git log --decorate --oneline --graph sample output : * e0c1cea (HEAD -> maint, tag: v2.9.3, origin/maint) Git 2.9.3 * 9b601ea Merge branch 'jk/difftool-in-subdir' into maint |\ | * 32b8c58 difftool: use Git::* functions instead of passing around state | * 98f917e difftool: avoid $GIT_DIR and $GIT_WORK_TREE | * 9ec26e7 difftool: fix argument handling in subdirs * | f4fd627 Merge branch 'jk/reset-ident-time-per-commit' into maint ...

전체 명령어를 손으로 치기에는 꽤나 길기 때문에, 별칭(alias) 로 등록하여 사용할 수도 있다:

git config --global alias.lol "log --decorate --oneline --graph"

이제 아래와 같이 간단히 별칭(alias) 버전의 명령어를 사용할 수 있다:

# 현재 브랜치의 history 보기 : git lol # 현재 활성화된 브랜치 (HEAD) 및 develop 브랜치와 origin/master 브랜치의 history 를 모두 통합하여 보기 : git lol HEAD develop origin/master # 사용자 저장소에 있는 모든 history 를 나열하기 : git lol --all

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

반응형

'번역 > Git Notes for Professionals' 카테고리의 다른 글

2.4: 로그 내용을 한줄씩만 표시하기  (0) 2019.08.14
2.3: 로그에 색상입히기  (0) 2019.08.13
2.1: "일반적인" Git 로그  (0) 2019.08.13
1.8: Git 설치하기  (0) 2019.08.13
1.7: Git 과 SSH 연동하기  (0) 2019.08.13
GitNotes.2-1.md
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

Section 2.1: "일반적인" Git 로그

git log

위 명령어는 모든 커밋들의 작성자 (author) 정보와 해시값을 표시한다. 기본적으로 git log 명령은 하나의 커밋당 여러줄의 정보를 보여주게 된다 (매 커밋당 딱 한줄씩의 정보만 보고싶다면 "로그 한줄씩 표시하기" 챕터 내용을 참고하라). 로그 표시 상태에서 빠져나오기 위해서는 'q' 키를 누르면 된다.

예제 (Free Code Camp 저장소에서 발췌):

commit 87ef97f59e2a2f4dc425982f76f14a57d0900bcf Merge: e50ff0d eb8b729 Author: Brian Date: Thu Mar 24 15:52:07 2016 -0700 Merge pull request #7724 from BKinahan/fix/where-art-thou Fix 'its' typo in Where Art Thou description commit eb8b7298d516ea20a4aadb9797c7b6fd5af27ea5 Author: BKinahan Date: Thu Mar 24 21:11:36 2016 +0000 Fix 'its' typo in Where Art Thou description commit e50ff0d249705f41f55cd435f317dcfd02590ee7 Merge: 6b01875 2652d04 Author: Mrugesh Mohapatra Date: Thu Mar 24 14:26:04 2016 +0530 Merge pull request #7718 from deathsythe47/fix/unnecessary-comma Remove unnecessary comma from CONTRIBUTING.md

마지막 n개에 대해서만 커밋 로그를 보고 싶다면, 위 명령어에 n개에 해당하는 파라미터를 전달하기만 하면 된다. 예를 들어, 마지막 2개의 커밋 로그만 보고 싶다면 아래와 같이 입력한다.

git log -2

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

반응형

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)

반응형

+ Recent posts