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

Chapter 58: git 저장소 이름 변경하기

만약 저장소의 이름이 원격 측에서 (githib 나 bitbucket 등) 변경된 경우, 기진 작업중이던 코드를 push 하려고 하면 다음과 같은 오류 메시지를 보게 될 것이다: Fatal error, repository not found**.

Section 58.1: 로컬 설정 변경하기

터미널로 이동하여 아래와 같이 수행한다.

cd projectFolder git remote -v (여기서는 기존 git url 정보가 표시될 것이다) git remote set-url origin https://username@bitbucket.org/username/newName.git git remote -v (다시 한번 확인, 이제 새로운 git url 정보가 표시될 것이다) git push (혹은 다른 원하는 작업을 이제 수행할 수 있다)

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

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

Chapter 57: Git rerere 사용하기

rerere (저장된 해결책 재사용하기 : reuse recorded resolution) 기능은 git 으로 하여금 사용자가 특정 조각 (hunk) 에 대한 conflict 을 어떻게 해결했는지를 기억하도록 설정할 수 있는 기능이다. 이 기능을 사용할 경우, git 이 이후 동일한 conflict 을 감지했을 때, 자동으로 해당 conflict 을 해결해줄 것이다.

Section 57.1: rerere 활성화하기

rerere 를 활성화하기 위해서는 아래 명령어를 실행한다:

$ git config --global rerere.enabled true

이는 특정 저장소에 한해 설정될 수 있을뿐만 아니라 전역 옵션으로 설정될 수도 있다.

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

반응형

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

59: Git 에서 Tag 사용하기  (0) 2020.05.20
58: git 저장소 이름 변경하기  (0) 2020.05.19
56.2: Hook 설치하기  (0) 2020.05.19
56.1: Git pre-push hook  (0) 2020.05.18
56: Git Client-Side Hook 설정하기  (0) 2020.05.18
GitNotes.56-2.md
본 문서는 Git Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

Section 56.2: Hook 설치하기

모든 hook 들은 git 디렉토리 내의 hooks 하부디렉토리에 저장되게 되어 있다. 대부분의 프로젝트들에서, 이 위치는 .git/hooks 가 된다.

hook 스크립트를 사용하고자 한다면, 만들고자 하는 hook 에 알맞은 이름을 가진 (확장자가 없어야 한다) 실행 가능한 파일을 사용자의 .git 디렉토리 하부의 hooks 하부디렉토리에 위치시키도록 한다.

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

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

Section 56.1: Git pre-push hook

pre-push 스크립트는 git push 명령에 의해 호출되며, 원격 저장소의 상태를 확인한 후 실제 push 를 수행하기 직전에 실행된다.

만약 이 스크립트가 0 이 아닌 다른 상태값을 반환하면서 종료할 경우, 아무것도 실제로 push 되지 않을 것이다.

이 hook 은 아래와 같은 파라미터와 함께 불릴 것이다:

$1 -- push 가 수행될 원격 저장소의 이름 (예: origin) $2 -- push 가 이루어질 원격 저장소의 URL 정보 (예: https://://.git)

push 될 커밋들에 대한 정보는 아래와 같은 형식으로 표준 입력에 줄 단위로 입력된다:

<local_ref> <local_sha1> <remote_ref> <remote_sha1>

값들에 대한 예제:

local_ref = refs/heads/master local_sha1 = 68a07ee4f6af8271dc40caae6cc23f283122ed11 remote_ref = refs/heads/master remote_sha1 = efd4d512f34b11e3cf5c12433bbedd4b1532716f

아래의 예제는 git init 을 통해 새롭게 만들어지는 저장소에 자동으로 생성되는 기본 pre-push.sample 파일의 내용이다.

# 이 예제는 로그 메시지가 "WIP" (작업중 - work in progress) 로 시작하는 경우에 # 커밋들을 push 하지 않게 만드는 방법을 보여준다. remote="$1" url="$2" z40=0000000000000000000000000000000000000000 while read local_ref local_sha remote_ref remote_sha do if [ "$local_sha" = $z40 ] then # 삭제된 경우에 대한 처리 : else if [ "$remote_sha" = $z40 ] then # 새로운 브랜치인 경우에 해당, 모든 커밋들을 검사한다 range="$local_sha" else # 기존 브랜치를 업데이트 하는 경우에 해당, 새로운 커밋들만 검사한다 range="$remote_sha..$local_sha" fi # WIP 커밋 존재 여부를 검사한다 commit=`git rev-list -n 1 --grep '^WIP' "$range"` if [ -n "$commit" ] then echo >&2 "Found WIP commit in $local_ref, not pushing" exit 1 fi fi done exit 0

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

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

Chapter 56: Git Client-Side Hook 설정하기

다른 많은 버전 관리 시스템들과 마찬가지로, Git 역시 중요한 작업이 수행되는 시점에 사용자가 설정한 스크립트를 작동시키는 기능을 제공하고 있다. 이러한 hook 의 종류에는 크게 두가지가 있다: client-side 와 server-side 가 바로 그것이다. client-side hook 들은 커밋을 작성하거나 merge 를 수행할 때 작동되며, server-side hook 들은 push 된 커밋들을 수신하는 등의 네트웍 관련 작업이 이루어질 때 작동된다. 사용자는 이러한 hook 들을 다양한 목적으로 활용할 수 있다.

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

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

Chapter 55: Ubuntu Bash 상에서 Git 브랜치 이름 표시하기

이 문서에서는 bash 터미널에서 브랜치 이름을 표시하는 법을 다룬다. 개발자들에게 있어서 git 브랜치 이름을 확인해야 하는 상황은 자주 발생한다. 현재 디렉토리에 대한 path 정보를 표시할 때, 브랜치 이름을 함께 표시할 수 있다.

Section 55.1: 터미널에서 브랜치 이름 표시하기

PS1 이란?

PS1 은 "Prompt String 1" 을 나타낸다. 이는 Linux/UNIX 쉘 상에서 사용 가능한 프롬프트 중 하나이다. 터미널 창을 열게 되면, 사용자의 bash 프롬프트에 PS1 변수에 정의된 내용을 표시해 줄 것이다. bash 프롬프트에 브랜치 이름을 추가적으로 표시하기 위해서, PS1 변수를 수정할 수 있다. (~/.bash_profile 내의 PS1 값을 변경한다).

git 브랜치 이름 표시하기

아래의 내용을 사용자의 ~/.bash_profile 에 추가한다.

git_branch() { git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/' } export PS1="\u@\h \[\033[32m\]\w\[\033[33m\]\$(git_branch)\[\033[00m\] $ "

위에서 선언한 git_branch 함수는 사용자가 어떤 브랜치에서 작업중인지를 찾아낼 것이다. 위 수정사항을 적용한 이후부터는, 터미널에서 git 저장소 위치로 이동하여 브랜치 이름이 정상적으로 표시됨을 확인할 수 있을 것이다.

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

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

Section 54.1: Reference 내의 객체 이름 변경하기

사용 목적

reference 에 저장된 객체의 이름을 갱신하기 위해 사용한다

명령어 개요

git update-ref [-m <reason>] (-d <ref> [<oldvalue>] | [--no-deref] [--create-reflog] <ref> <newvalue> [<oldvalue>] | --stdin [-z])

일반적인 사용법

  1. 기존 symbolic ref 를 참조 해제하여, 현재 브랜치의 head 로 하여금 새로운 객체를 가리키도록 갱신한다.
    git update-ref HEAD <newvalue>
  2. ref 의 현재 값이 oldvalue 와 동일한지를 검사한 후에 newvalue 를 ref 에 저장한다.
    git update-ref refs/head/master <newvalue> <oldvalue>
    위 명령은 현재 master 브랜치가 oldvalue 를 가리키고 있는 경우에 한하여 master 브랜치의 head 를 newvalue 로 갱신할 것이다.

-d 옵션을 이용하여 <ref> 의 현재 값이 oldvalue 와 동일한지를 검사한 후에 삭제를 수행하도록 할 수 있다.

--create-reflog 옵션을 이용하여, update-ref 명령어로 하여금 일반적으로 reflog 가 생성되는 상황이 아닐지라도 각 ref 에 대한 reflog 를 생성하게 할 수 있다.

-z 옵션을 이용하여, update, create, delete, verify 와 같은 명령어 사용에 있어서 NUL 로 끝나는 형식의 파라미터를 사용할 것임을 명시할 수 있다.

Update

<ref> 로 하여금 <oldvalue> 가 주어진 경우 이를 확인한 후 <newvalue> 로 설정한다. Update 이후에 ref 가 존재하지 않도록 하려면 빈 <newvalue> 를 기술하도록 하고, update 전에 ref 가 존재하지 않는 것을 확인하려면 빈 <oldvalue> 를 기술하도록 한다.

Create

존재 여부를 먼저 검사한 후, <newvalue> 를 값으로 하는 <ref> 를 생성한다. <newvalue> 는 빈 값이어서는 안된다.

Delete

<oldvalue> 가 주어진 경우, 해당 값과 비교를 수행한 다음 <ref> 를 삭제한다. <oldvalue> 값이 존재한다면, 그 값이 빈 상태여서는 안된다.

Verify

<ref> 와 <oldvalue> 값의 일치 여부에 대한 검사를 수행하나 값을 변경하지는 않는다. <oldvalue> 가 주어지지 않았거나 빈 값이라면, 해당 ref 는 존재하지 않는 상태여야 한다.

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

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

Section 53.5: Beyond Compare 설정하기

bcomp.exe 에 대한 경로를 아래와 같이 설정한 후,

git config --global difftool.bc3.path 'c:\Program Files (x86)\Beyond Compare 3\bcomp.exe'

bc3 을 기본 diff 도구로 설정한다

git config --global diff.tool bc3

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

반응형

+ Recent posts