색상이나 텍스트 서식을 고려 awk하여 +and -줄만 표시 하는 방법을 사용 하여 git diff출력 할 수 있습니다.
여기에 다른 답변 중 하나 ( 내 다른 답변 포함 )가 100 % 올바르게 원하는 것을 정확하게 수행하지는 않습니다. 그러나이 답변은 그렇습니다. 다음은 터미널에 복사하여 붙여 넣을 수있는 1 라이너입니다. 가독성을 위해 여러 줄을 만들었습니다. 같은 방식으로 복사하여 붙여 넣을 수 있으므로 읽을 수 있습니다! awk프로그래밍 언어 에 의존 합니다 :
git diff --color=always "$@" | awk '
# 1. Match and then skip "--- a/" and "+++ b/" lines
/^(\033\[(([0-9]{1,2};?){1,10})m)?(--- a\/|\+\+\+ b\/)/ {
next
}
# 2. Now print the remaining "+" and "-" lines ONLY! Note: doing step 1 above first was required or
# else those lines would have been matched by this matcher below too since they also begin with
# the "+" and "-" symbols.
/^(\033\[(([0-9]{1,2};?){1,10})m)?[-+]/ {
print $0
}
' | less -RFX
그 기능은 다음과 같습니다. 이러한 모든 기능을 함께 사용하면 다른 모든 답변의 단점을 해결할 수 있습니다.
- 컬러 및 무 컬러 출력을 처리합니다. 이것이이 정규 표현식의 기능입니다.
^(\033\[(([0-9]{1,2};?){1,10})m)?
- 그것은 모든 색상과 당신이 수 등 굵게, 기울임 꼴, 취소,를 포함하여 모든의 텍스트 서식 옵션, 처리 하여 설정
git config설정을 . 즉, 위의 정규식이 이유 ;?와 {1,10}그것에서 : 그것이 색상이나 텍스트 서식 코드의 시작을 감지하면, 이러한 결합 ANSI 코드 (10 개) 순서까지 일치합니다.
또한 허용되는 답변 과 같이로 시작 @@하는 단어와 단어 가 포함되지 않습니다. 그 줄을 원한다면 (정말로 유용하다고 생각합니다 :)) 대신 다음을 수행하십시오.diff
git diff --unified=0
또는
git diff -U0
이 같은 정확한 방법으로 출력을 보여줍니다 git diff겠습니까 다음의 less옵션 컬러 출력 (와 호출기 -R), 텍스트 인 경우에만> 1 페이지 ( -F) 화면에 텍스트의 현재 페이지를 유지하면서 때 qUIT ( -X) .
또한 awk 프로그래밍 언어를 사용하기 때문에 강력 하고 쉽게 구성 할 수 있다는 이점이 있습니다.
awk 학습에 관심이 있다면 다음 자료를 참조하십시오.
gawk(GNU awk) 매뉴얼 : https://www.gnu.org/software/gawk/manual/html_node/index.html#SEC_Contents
- 연구
git diffn및 의견 : https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles/blob/master/useful_scripts/git-diffn.sh
- 라인 번호
git diffn가 git diff있는 원한다면 라인 번호 가 있는 Git diff (라인 번호가있는 Git log)를 참조하십시오.
- awk "hello world"및 구문 테스트 예제 : https://github.com/ElectricRCAircraftGuy/eRCaGuy_hello_world/tree/master/awk
보너스로, 나는 또한로 사용될 위의 내용을 마무리했다. git diffc"git diff는 오직 'c'hanges"를 표시한다. 사용법은 동일 행 git diff; 그냥 git diffc대신 사용하십시오! 모든 옵션을 지원합니다. 색상은 기본적으로 켜져 있습니다. 끄려면 간단히 git diffc --no-color또는을 사용하십시오 git diffc --color=never. 자세한 내용 man git diff을 참조하십시오.
어제 밤에 ( 'n'umbers git diffn로 표시하는 도구)를 마쳤 기 때문에 git diff글쓰기 git diffc는 간단했습니다. 나는 지식이 머리 속에 신선하지만 지금은 더 잘 할 것이라고 생각했다.
설치 git diffc:
지침에 표시된 곳을 제외 하고이 답변 끝 부분의 지침을 따르십시오 . 대신 git-diffn사용 하십시오 git-diffc. 그것은 wget명령에도 포함됩니다 . 다운로드 및 설치 git diffc가 쉽습니다. 몇 가지 명령 일뿐입니다.