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

Section 10.11: 특정 날짜 정보를 커밋에 포함시키기

git commit -m 'Fix UI bug' --date 2016-07-01

The --date 옵션은 커밋의 작성 날짜 (author date) 를 설정한다. 이 날짜 정보는 git log 와 같은 명령을 실행하는 표준 출력 정보에 표시되게 된다.

작성 날짜 뿐만 아니라 커밋 날짜 정보 역시 아래와 같이 설정할 수 있다:

GIT_COMMITTER_DATE=2016-07-01 git commit -m 'Fix UI bug' --date 2016-07-01

--date 파라미터는 다양한 형태로 표현되는 GNU date 서식을 유연하게 처리할 수 있다. 아래의 예를 참고한다:

git commit -m 'Fix UI bug' --date yesterday git commit -m 'Fix UI bug' --date '3 days ago' git commit -m 'Fix UI bug' --date '3 hours ago'

--date 사용 시 시간 정보를 기술하지 않는다면, 현재 시간에서 날짜 부분만 기술한 정보로 변경하여 기록하게 된다.

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

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

Section 10.10: 특정 파일들의 변경사항을 커밋하기

특정 파일들에 대한 수정사항들을 git add 를 통해 stage 하는 과정을 거치지 않고도 아래와 같이 곧바로 커밋을 수행할 수 있다:

git commit file1.c file2.h

아니면 수정된 파일들을 먼저 stage 시킨 후:

git add file1.c file2.h

이후에 커밋을 수행할 수도 있다:

git commit

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

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

Section 10.9: 커밋에 GPG 서명 하기

  1. 사용자의 key ID 확인하기

    gpg --list-secret-keys --keyid-format LONG /Users/davidcondrey/.gnupg/secring.gpg -------------------------------------- sec 2048R/YOUR-16-DIGIT-KEY-ID YYYY-MM-DD [expires: YYYY-MM-DD]

    위 예제에서 사용자의 ID 는 첫번째 슬래시 ('/') 이후에 표시되는 16개의 영문자와 숫자로 이루어진 코드 부분이다.

  2. git config 설정에 사용자의 key ID 를 추가하기

    git config --global user.signingkey YOUR-16-DIGIT-KEY-ID
  3. 1.7.9 버전을 기준으로, git commit 명령은 -S 옵션을 통해 사용자의 서명 정보를 커밋에 첨부할 수 있다. 이 옵션 사용시 git 은 사용자의 GPG passphrase 를 입력하도록 요구하며, 이 과정을 통과하면 사용자의 서명 정보가 커밋 기록에 추가된다.

    git commit -S -m "Your commit message"

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

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

Section 10.8: 다른 사람을 대신하여 커밋하기

다른 사람이 작성한 코드를 커밋하는 경우, --author 옵션을 이용하여 커밋의 공적을 원 작성자에게 돌릴 수 있다:

git commit -m "msg" --author "John Smith <johnsmith@example.com>"

해당 옵션에는 패턴을 사용할 수도 있는데, 이 경우 git 은 이전 작성자 정보를 검색하게 된다:

git commit -m "msg" --author "John"

이 예제의 경우, "John" 이라는 문자열을 포함한 작성자 정보를 가진 가장 최근 커밋을 검색하여 해당 작성자 정보를 재사용하게 될 것이다.

GitHub 에서는, 앞에서 설명한 방법을 통해 작성된 커밋은 작성자의 thumbnail 이 크게 나타나고, 커밋을 수행한 사용자의 사진이 작게 전면에 나타나게 된다:

GitHub

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

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

Section 10.7: 빈 (empty) 커밋 생성하기

일반적으로 얘기해서, 빈 커밋은 (혹은 해당 커밋의 부모 커밋과 상태가 동일한 커밋은) 오류로 취급된다.

그러나, 빌드 hook 이나 CI 시스템,또는 어떤 형태이건 커밋을 통해 동작이 유발(trigger) 되는 시스템이 있다면, 매번 더미 파일을 touch 하거나 수정하는 것보다 손쉽게 새로운 커밋을 생성할 수 있는 것이 훨씬 편리할 것이다.

--allow-empty 을 이용한 커밋은 이러한 빈 커밋 검사를 건너뛰게 된다.

git commit -m "This is a blank commit" --allow-empty

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

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

Section 10.6: 커밋에 포함될 내용을 선택적으로 stage 하기

만약 하나 혹은 여러 파일에 걸쳐 많은 변경사항들이 존재하는 상황에서, 일부 변경사항에 대해서만 커밋을 수행하고 싶다면, 아래와 같은 방법으로 커밋에 포함되길 원하는 변경사항들을 선택할 수 있다:

git add -p

또는

git add -p [file]

위 명령어 수행시 변경사항들이 개별적으로 표시되며, 각 변경사항에 대하여 다음 옵션 중 하나를 선택할 수 있는 대화형 입력 프롬프트가 나타날 것이다:

y - 이 변경사항 조각(hunk) 을 추가한다. n - 이 변경사항 조각을 추가하지 않는다. d - 이 변경사항 조각 및 이후 현재 파일 내의 모든 조각들을 추가하지 않는다. 한 파일 내에서 이미 원하는 변경사항을 추가 완료하여 나머지를 건너뛰고 싶은 경우 유용하다. s - 가능한 경우 이 변경사항 조각을 더 작은 단위의 조각으로 나눈다 e - 현재 변경사항 조각 내용을 직접 편집한다. 이 기능이 아마도 가장 강력한 기능일 것이다. 이 옵션 선택시 편집기가 실행되며, 이를 통해 주어진 변경사항을 필요에 따라 편집할 수 있다.

위에서 소개된 작업을 통해 파일들의 특정 부분들을 선택하여 stage 시킬 수 있을 것이다. 이렇게 stage 된 모든 변경사항들에 대해 이제 아래와 같이 커밋을 수행할 수 있다:

git commit -m 'Commit Message'

위와 같이 stage 및 커밋되지 않은 변경사항들은 여전히 사용자의 작업 디렉토리에 존재하여, 필요한 경우 이후 다른 커밋에 포함시킬 수 있다. 혹은 작업 디렉토리에 남아있는 변경사항들이 불필요한 경우, 아래 명령을 실행하여 제거할 수 있다:

git reset --hard

이러한 방법은 큰 규모의 변경사항을 작은 커밋들로 쪼개는 목적 이외에도, 커밋하려는 내용을 리뷰하기에도 매우 유용하다. 개별 변경사항들에 대해 검토하는 과정을 거침으로써, 스스로 작성한 코드를 확인할 수 있으며 불필요한 로그를 위한 코드 등이 잘못해서 stage 되는 실수 또한 방지할 수 있다.

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

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

Section 10.5: 변경 사항들을 곧바로 커밋하기

일반적으로, 변경 사항들을 커밋하기 위해서는 git add 혹은 git rm 명령어를 이용하여 해당 변경사항들을 index 에 추가해 주어야 한다.

-a 혹은 --all 옵션을 커밋 시에 이용하면 파일 제거를 포함한 모든 변경 사항들을 (추적 중인 파일들에 대해서) index 에 자동으로 추가하여 준다:

git commit -a

커밋 메시지도 같이 기술하고 싶다면 아래와 같이 수행한다:

git commit -a -m "your commit message goes here"

더 나아가, 두 옵션을 하나로 합쳐서 사용할 수도 있다:

git commit -am "your commit message goes here"

모든 파일들을 꼭 한번에 모두 커밋시킬 필요는 없으므로, -a--all 옵션을 대신하여 바로 커밋하기를 원하는 파일을 기술하는 방법을 사용할 수도 있다:

git commit path/to/a/file -m "your commit message goes here"

하나 이상의 특정 파일을 바로 커밋하기 위해서, 하나 이상의 파일들과 디렉토리 및 패턴도 사용이 가능하다:

git commit path/to/a/file path/to/a/folder/* path/to/b/file -m "your commit message goes here"

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

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

Section 10.4: 편집기를 열지 않고 커밋하기

git commit 명령어 실행 시, git 은 편집기 (vim 이나 emacs 와 같은) 를 실행하게 된다.

-m 옵션을 이용하면 커밋 메시지를 명령어 줄에 직접 기술할 수 있다:

git commit -m "Commit message here"

커밋 메시지는 여러 줄에 걸쳐서 입력도 가능하다:

git commit -m "Commit 'subject line' message here More detailed description follows here (after a blank line)."

또 다른 방법으로, -m 옵션을 여러번 반복해서 사용할 수도 있다:

git commit -m "Commit summary" -m "More detailed description follows here"

커밋 메시지 작성하기 (How to Write a Git Commit Message) 를 참고하라.

Udacity Git Commit Message Style Guide

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

반응형

+ Recent posts