2015-01-15 7 views
0

git diff을 정규식 내에서만 비교하고 싶습니다. 파일의정규식 내에서 git diff를 얻는 방법은 무엇입니까?

내용 개정판 A에서 : 개정 B에서 파일의

A 0 1 
A 1 1 2 
A 0 1 2 3 
A 1 1 2 3 4 

내용 :

B 0 1 
B 0 1 2 
B 1 1 2 4 
B 1 1 2 4 8 16 

내가 첫 번째 단어 (예 : 'A'를 무시 할 수 있습니다 또는 '예를 들어 B '), 다음 두 단어와 일치시키고 나머지 줄은 무시합니다. 위의 경우 두 번째 및 세 번째 줄만보고해야합니다.

How to grep the git diff?은 내가 원하는 것을 수행하는 데 사용되지만 그 행동이 변경되었음을 나타냅니다. 이 문제가 발생할 수있는 방법이 있습니까 (diff <(git show ... | awk ...) <(git show ... | awk ...)과 같은 것을하지 않는 것)?

+0

두 파일 (리비전 제외)을 비교하는 경우 diff를 사용하는 것이 더 이상적이지 않습니까? 왜 git가 필요합니까? – Schwern

+0

죄송합니다.이 예는 조금 오도되었습니다. 나는 실제로 두 개의 리비전을 비교하려고합니다. 예제를 더 대표적으로 수정하겠습니다. –

답변

2

diff를 사용하면 diff의 형식을 변경할 수 있습니다. 콘텐츠를으로 변경하려는 경우 특수한 방법으로 변경하십시오. diff을 사용하면 git showawk (또는 이와 비슷한 것)이 정확합니다. 작은 툴들 사이에서 텍스트를 파이핑하는 유닉스 철학을 따른다.

나는 이것을 a git command alias으로 설정하거나 ~/bin/git-column-diff과 같은 쉘 스크립트를 작성하는 것이 좋습니다. 그런 다음 git column-diff file1 file2 수 있습니다.

당신 남용 the textconv feature 당신을위한 필터링을 수행하는,하지만 특별한 확장자를 갖는 파일을 필요로하고,이 파일을 항상 diffing의 방해, 그리고 항상 같은 열을 원하는 당신이 가진 것 diffed.

사용자 지정 diff를 실행하는 프로그램을 작성하고이 프로그램을 가리 키도록 GIT_EXTERNAL_DIFF을 설정하십시오.

+0

나는 diff ((git show | awk) <(git show | awk)) 해결책을 가지고 갔다. 추가 정보는 이러한 결정을 내리는 데 도움이되었습니다. 이 필요가 충분히 자주 발생하면 별칭을 만드는 방법에 대해 생각해 보겠습니다. 감사. –

관련 문제