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

Section 6.7: 변경된 라인 목록을 단어 단위 변경 형식으로 보기

git diff [HEAD|--staged...] --word-diff

위 명령은 변경 내역을 라인 단위 형식으로 표시하는 대신에, 변경 내역을 한 라인 내에 포함하여 표시해 준다. 예를 들어, 아래와 같이 표시하는 대신에:

-Hello world +Hello world!

전체 라인에 대해 변경되었다는 표식을 추가하는 대신 단어 단위로 변경 내역을 출력하여 준다:

Hello [-world-]{+world!+}

[-, -], {+, +} 와 같은 변경 내역 마커를 표시하지 않고 싶다면, --word-diff=color 혹은 --color-words 옵션을 사용할 수 있다. 이 옵션들은 변경 사항을 표시하기 위해 아래와 같이 색깔을 이용해 나타내 줄 것이다:

word-diff

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

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

Section 6.6: 특정 파일이나 디렉토리에 대해 변경사항 출력하기

git diff myfile.txt

위 명령어는 해당 특정 파일에 대해 (myfile.txt) 가장 최근에 커밋된 버전과 로컬에서 stage 되지 않은 수정 버전 사이의 변경 사항을 보여준다.

이 방법은 디렉토리에 대해서도 동일하게 사용 가능하다:

git diff documentation

위 명령은 지정된 디렉토리 (documentation/) 내의 모든 파일들에 대해 가장 최근 커밋 이후에 로컬에서 stage 되지 않은 모든 수정 내역들을 보여줄 것이다.

어떤 파일에 대해, 특정한 커밋 버전의 내용과 로컬 HEAD 버전 사이의 차이를 비교해 보고 싶다면 아래와 같이 비교할 커밋을 직접 지정할 수 있다:

git diff 27fa75e myfile.txt

혹은, 두개의 다른 커밋 사이의 차이점을 비교할 수도 있다:

git diff 27fa75e ada9b57 myfile.txt

해시값 ada9b57 으로 표현되는 버전과 my_branchname 라는 이름의 브랜치의 가장 최신 버전과의 차이점 중에서 my_changed_directory/ 디렉토리 이하의 상대 경로상의 파일들에 대해서만 비교를 수행하고 싶다면 아래와 같이 수행한다:

git diff ada9b57 my_branchname my_changed_directory/

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

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

Section 6.5: stage 된 변경내역과 stage 되지 않은 변경내역 모두 표시하기

stage 된 변경내역과 stage 되지 않은 변경내역을 모두 표시하려면 아래와 같이 입력한다:

git diff HEAD

참고: 아래의 명령어를 사용할 수도 있다:

git status -vv

두번째 명령어는 첫번째 명령어와의 차이점이 하나 있는데, 그것은 바로 stage 된 변경사항들과 stage 되지 않은 변경사항들을 구분해서 보여준다는 것이다.

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

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

Section 6.4: 브랜치간의 차이점 비교하기

new 브랜치의 마지막 커밋과 original 브랜치의 마지막 커밋간의 차이점을 출력하려면 다음과 같이 수행한다:

git diff original new # original..new 라고 적어도 동일하다

new 브랜치가 original 브랜치로부터 분리된 이후로의 모든 변경사항을 출력하려면:

git diff original...new # $(git merge-base original new)..new 라고 적어도 동일하다

역주: $(git merge-base original new)..new 의 경우에는 original 브랜치에 분기 이후 추가적인 커밋이 없었을 때에만 앞선 명령어와 동일한 결과를 출력합니다.

파라미터를 아래처럼 하나만 준 경우에는

git diff original

아래 명령어를 수행한 것과 동일하게 동작한다

git diff original..HEAD

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

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

Section 6.3: stage 된 변경 내역 확인하기

git diff --staged

위 명령어는 이전 커밋과 현재 stage 된 파일들 사이의 차이점을 출력해 줄 것이다.

  • 참고: 아래 명령어들 역시 동일한 목적을 위해 사용할 수 있다:
    git diff --cached
    이 옵션은 --staged 와 이름만 다를 뿐 동일한 옵션이다.
    git status -v
    이 명령은 status 명령어의 상세 출력 (verbose) 설정을 활성화하여 stage 된 변경사항을 표시한다.

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

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

Section 6.2: 두 커밋 사이의 변경 내역 확인하기

git diff 1234abc..6789def # old new

예) 최근 3개의 커밋 사이의 변경사항 표시하기:

git diff @~3..@ # HEAD -3 HEAD

주의: 위 명령어에 추가한 점 두개 (..) 는 옵션 사항이나, 의미를 더욱 명확하게 하는 데에 도움이 된다.

이 명령어는 두 커밋 사이의 텍스트상의 차이점을 표시하며, 두 커밋의 Git tree 상 위치에 관계없이 동작한다.

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

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

Section 6.1: 현재 작업 디렉토리 내의 변경사항 표시하기

git diff

위 명령은 현재 브랜치 내에서 이전 커밋 이후로의 stage 되지 않은 변경 사항들을 표시해 준다. 이는 index 와의 비교를 통한 변경 내역을 보여주는 명령어로써, 다른 말로 표현하자면 다음 커밋에 추가 (add) 할 수는 있지만 아직 추가 하지는 않은 변경사항을 출력하게 된다. 해당 변경사항을 stage 하려면, git add 명령어를 사용한다.

만약 특정 파일이 이미 stage 된 상태에서 이후 추가적인 변경이 있었다면, git diff 는 stage 된 버전과 현재 버전 사이의 diff 를 출력해줄 것이다.

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

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

Chapter 6: Git Diff

파라미터 설명
-p, -u, --patch 패치 생성하기
-s, --no-patch diff 내용을 출력하지 않는다. git show 처럼 기본적으로 패치 내용을 표시하는 명령어나 --patch 옵션을 무효화 시켜야 하는 등의 상황에 유용하다
--raw diff 형식을 raw 형식으로 출력한다
--diff-algorithm= diff 를 수행할 알고리즘을 선택한다. 다음과 같은 선택지가 존재한다: myers, minimal, patience, histogram
--summary 파일의 생성, 이름 변경 혹은 mode 변경 등의 축약된 정보를 출력한다
--name-only 변경된 파일들의 이름만을 출력한다
--name-status 변경된 파일들의 이름과 상태 정보를 출력한다. 많이 사용되는 상태 정보로는 M (수정됨), A (추가됨), 그리고 D (삭제됨) 등이 있다
--check 변경 내역에 conflict marker 나 whitespace 에러가 포함되어 있을 경우 경고를 출력한다. whitespace 에러의 검출 정책은 core.whitespace 설정값에 의해 결정된다. 기본값으로는, trailing whitespace (줄의 끝이 공백으로 끝나는 경우 - 한 줄 전체가 공백만으로 채워져 있는 라인 포함) 와 한 라인의 첫 들여쓰기의 구성이 공백문자 다음에 바로 탭 문자가 따르는 경우가 whitespace 에러로 간주된다. 에러 검출시 non-zero 상태값을 반환하며, --exit-code 옵션과 동시에 사용시 정상 동작을 보장할 수 없다
--full-index 파일의 변경 전/후 정보를 patch 형식으로 출력할 때, 몇 글자로 축약된 버전이 아닌 정식 버전의 blob object name 을 "index" 라인에 표시한다
--binary 바이너리 파일 변경사항에 대하여서도 git apply 할 수 있는 binary diff 정보를 출력한다
-a, --text 모든 변경된 파일들을 text 형태로 취급한다
--color 칼라 모드를 지정한다; 예) --color=always 옵션 사용시 파이프를 통해 less 명령어로 Git 에서 제공하는 칼라 형태의 결과물을 전달할 수 있다

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

반응형

+ Recent posts