깃쇼 라인을 추가하고 라인을 변경하고 라인을 제거하는 방법이 있습니까?
git diff --stat
그리고.git log --stat
다음과 같은 출력 표시:
$ git diff -C --stat HEAD c9af3e6136e8aec1f79368c2a6164e56bf7a7e07
app/controllers/application_controller.rb | 34 +++-------------------------
1 files changed, 4 insertions(+), 30 deletions(-)
그런데 그 커밋에서 실제로 일어난 일은 4줄이 변경되고 26줄이 삭제되었는데, 이는 4줄을 추가하고 30줄을 삭제하는 것과는 다릅니다.
델타 LOC(이 경우 26개)를 얻을 수 있는 방법이 있습니까?추가된 줄과 제거된 줄을 구분하는 것은 별로 신경 쓰지 않습니다.
사용할 수 있는 항목:
git diff --numstat
숫자 차이 정보를 얻을 수 있습니다.
수정을 추가 및 제거 쌍과 분리하는 한,--word-diff
도움이 될 겁니다다음과 같은 방법을 사용할 수 있습니다.
MOD_PATTERN='^.+(\[-|\{\+).*$' \
ADD_PATTERN='^\{\+.*\+\}$' \
REM_PATTERN='^\[-.*-\]$' \
git diff --word-diff --unified=0 | sed -nr \
-e "s/$MOD_PATTERN/modified/p" \
-e "s/$ADD_PATTERN/added/p" \
-e "s/$REM_PATTERN/removed/p" \
| sort | uniq -c
그것은 약간 장황하기 때문에 당신은 그것을 대신 당신만의 스크립트로 구문 분석하는 것이 좋을 것입니다.
ID가 있는 커밋에 의해 추가/변경/삭제된 라인을 알고 싶은 경우
commit-id
당신은 사용할 수 있습니다.git show commit-id --stat
또는
git diff commit-id-before commit-id --stat
범위 커밋에 의해 추가/변경/삭제된 라인을 알고 싶다면 다음을 사용할 수 있습니다.
git diff commit-id1 commit-id2 --stat
각 커밋별로 추가/변경/삭제된 라인을 알고 싶다면 다음을 사용할 수 있습니다.
git log --stat
를 사용하여 수정된 선의 수를 표시할 수 있습니다.예:
git diff HEAD c9af3e6136e8 | diffstat -Cm
그-C
옵션은 컬러화된 출력을 얻기 위한 것입니다.-m
옵션은 수정된 줄 수를 표시하기 위한 것입니다.샘플 출력:
app/controllers/application_controller.rb | 30 -------------------!!!
1 files changed, 0 insertions(+), 26 deletions(-), 4 modifications(!)
각 범주(삽입, 삭제, 수정)의 줄 수는 다음과 같이 대략적입니다.man diffstat
다음과 같이 말합니다.
-m merge insert/delete 카운트를 패치 파일의 각 "슬롯"에서 병합하여 수정된 라인의 카운트를 대략적으로 표시합니다.
diffstat
와 비교할 때 누락된 기능이 있습니다.git diff --stat
:diffstat
파일 이동/이름 변경을 표시할 수 없습니다(예:app/{a.rb => b.rb}
)와 달리git diff --stat
이 정보를 보여줄 수 있는 것은 사용함으로써.-M
(--find-renames
) 옵션 또는 설정에 의해diff.renames
git 구성 파일(참조)man git-config
).
모든 파일이 커밋을 위해 준비된 경우--numstat
다음과 같이 진행:
git diff --numstat --cached
출력 예제
32 32 project.pbxproj
--numstat
[...] 추가 및 삭제된 라인 수 표시
git는 diff 형식으로 행을 추가하고 삭제하는 "diff" diff를 사용합니다.추가, 삭제, 변경 정보를 보여주는 디프를 얻으려면 외부적인 것을 해야 합니다.
https://wiki.postgresql.org/wiki/Working_with_Git#Context_diffs_with_Git 은 정기적으로 오래된 "diff"를 실행할 수 있는 스크립트에 대한 링크를 제공하며, 이를 통해 "diff" diff 출력을 생성할 수 있습니다.컨텍스트 diff에는 추가, 제거 및 변경된 라인이 표시되므로 원하는 데이터를 얻을 수 있습니다.
언급URL : https://stackoverflow.com/questions/9933325/is-there-a-way-of-having-git-show-lines-added-lines-changed-and-lines-removed
'programing' 카테고리의 다른 글
개체의 필드를 콘솔에 덤프하려면 어떻게 해야 합니까? (0) | 2023.07.13 |
---|---|
PLSQL 기호 "=>"의 의미 (0) | 2023.07.13 |
스프링 부트에서 조건부로 오토와이어를 사용하는 방법은 무엇입니까? (0) | 2023.07.08 |
배열이 비어 있는지 확인(vba excel) (0) | 2023.07.08 |
왜 마이크로소프트가.사무실. 인터럽트.Excel. 지원서.종료() 백그라운드 프로세스를 실행 상태로 두시겠습니까? (0) | 2023.07.08 |