기본 주소를 다시 정할 때 충돌의 정확한 차이를 표시합니다
묘사
이 패치는 @qstrahl이 #407에서 보고한 문제를 해결했습니다.최신 버전의git가 통합되지 않은 파일의 상태 표시 방식을 변경했습니다
다시 기초를 정할 때.결과적으로 통합되지 않은 파일이 기초를 재설정할 때 충돌이 발생했다
임시 저장 파일로 간주되다.이 패치는 다음과 같은 방법으로 이 문제를 수정합니다.
어떤 상태를 결정하기 위해 실행된 검사를 다시 정렬합니다
병합되지 않은 파일을 검사하기 위해 파일이 있는 부분
임시 저장 파일을 검사하기 전에 발생합니다.
토론 #1
이 변화는 비교적 오래된 버전의git에 불량 행위를 가져올 수 있습니까?토론 #2
바로 나의 문제:)2014년 2월 19일, 수요일, 쿠이나 스텔라[email protected]
쓰기:
Does this change introduce bad behaviour for older versions of git?
Reply to this email directly or view it on GitHubhttps://github.com/tpope/vim-fugitive/pull/440#issuecomment-35545246 .
토론 #셋
간단한 대답
아니야.
답이 길다
이 패치는 응용 테스트의 순서만 변경할 뿐 실제 내용은 변경하지 않습니다.이전 버전의 다른 부분에서 아래 문자열
git add/rm
을 포함하는 설명을 하지 않으면, 이것은 정확한 부분으로 일관되게 해석되어야 한다.경고
불행히도, 나는 이 점을 테스트하기 위해 구 버전의git가 없다.최초의 문제가 보도된 이래로 적어도 3개월이 되었다.따라서 이러한 변화는git 코드 라이브러리에 적어도 그렇게 오래 존재해 왔다.
또한git의 비영어 로컬화를 사용할 때 이 복구 프로그램도 이 문제를 해결할 수 없습니다.섹션 제목 아래에 인쇄하는 실제 명령이 변경되었습니다.
토론 #4
우리는 무엇을 해야만 그것을 합병할 수 있습니까?Gerrit의 사용자로서 기본 충돌을 재정비하는 것은 나의 작업 절차에서 흔히 볼 수 있는 부분이다.그러나git에는 구버전과 로컬화된 버전이 많다.실용적인 테스트 방법이 있습니까?아니면 불량 행위의 샘플이 도입되지 않았음을 검증하기 위해 이 변화를 테스트해야 합니까?토론 #5
ping@tpope만 있으면 될 수 있습니다.그는 매우 바쁜 사람이다토론 #6
나한테 먼저 새로운 상태 좀 보여줄래?토론 #7
인치:Gstatus
입니까 아니면 생git status
입니까?그리고 어떤 조건하에서?토론 #8
똑같지 않아요?나는 내 기계의 옛 판본과 비교하기 위해 합병 충돌을 보고 싶다.토론 #9
Aren't they the same?
구문 강조 표시가 중요한 경우
I want to see a merge conflict so I can compare with the older version on my machine.
나는 #407에서 이 예를 발표했다.
# rebase in progress; onto 2a78977
# You are currently rebasing branch 'master' on '2a78977'.
# (fix conflicts and then run "git rebase --continue")
# (use "git rebase --skip" to skip this patch)
# (use "git rebase --abort" to check out the original branch)
#
# Unmerged paths:
# (use "git reset HEAD <file>..." to unstage)
# (use "git add <file>..." to mark resolution)
#
# both modified: test.txt
#
no changes added to commit (use "git add" and/or "git commit -a")
토론 #10
그래, 확실히 생각보다 일이 많이 진전됐어.도주범은 두 가지 다른 탐색법을 사용하여 이 부분을 확정한다.1. 섹션 제목, 영어 로케일에만 적용.
2.
advice.statusHints
가짜가 아니라면 이 힌트들은 유효하다.다시 배열하면 정확한 헤더가 일치할 수 있지만, 진정한 문제는 단계와 통합되지 않은 알림 검사가 충분하지 않다는 것이다.특히 미통합에 대한 힌트는 하나multitude of possibilities였다.버전 제어가 작용할 수 있지만, 설령 나의 구 1.8.1이라도 같은 문제가 있다.
나는 약간의 개선된 제시 계발법을 내놓았다.나는 여전히
git reset
부분이 생략되었는지 잘 모르겠기 때문에 그것들은 완벽하지 않을 수도 있다.알려줘.토론 #11
신성한 스모그.노력해 주셔서 감사합니다.토론 #12
직접 합병 충돌은git-reset
부분을 생략한 것이 분명하다.(git 1.9.3 버전)과 새로운 알림 검출 계발법을 사용합니다. 이것은 일반적인 합병은 통합되지 않은 파일이 아니라 추적되지 않은 파일로 일치하는 것을 의미합니다.참조를 용이하게 하기 위해
git-merge
결합 충돌로 인해 발생한 결합되지 않은 부분의 형식은 다음과 같습니다.# Unmerged paths:
# (use "git add <file>..." to mark resolution)
#
# both added: B.txt
#
추적되지 않은 파일:# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# C.txt
#
불행하게도, 이것은git의 로컬화된 텍스트를 사용하지 않으면, 통합되지 않은 파일, 추적되지 않은 파일을 확정할 수 없다는 것을 의미한다. 왜냐하면 둘은 알림 텍스트에서 같은git 명령을 사용하기 때문이다.정확한 해결 방안은 로컬화된 파일을 검사하고 로컬화된 텍스트 검사 섹션 제목에 따라 하는 것입니다.
토론 #13
추적되지 않은 섹션의 첫 번째 파일을 포함할 수 없다는 요구가 추가되었습니다:
.나는 이렇게 하는 것이 매우 안전하다고 생각한다.토론 #14
장기적으로 보면 이사하고 싶은데git status --short
큰 변화예요.
Reference
이 문제에 관하여(기본 주소를 다시 정할 때 충돌의 정확한 차이를 표시합니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/tpope/vim-fugitive/issues/440텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)