git이 파일에“업데이트가 필요하다”고 말하는 것은 무엇을 의미합니까?


156

나는 git 때때로 때때로 뱉어내는 "[file] : needs update"메시지에 대한 적절한 설명을 찾지 못했다. 공식 자식 FAQ조차도 이것을 TODO로 표시했습니다. 누군가가 A) 의미를 설명 할 수 있다면; 그리고 B) 그것을 고치는 방법, 나는 매우 감사 할 것입니다.


1
좋은 질문입니다. GitFaq조차도
Justin Ethier


1
어떤 명령이 이것을 생성하는지 정확하게 알 수 있습니까? 그리고 어떤 버전의 Git? 나는 UI에서 그것들을 제거하려고 시도 했으므로 최근 Git은 잊어 버린 곳을 제외하고는 이것을 말하지 않아야한다 ;-).
Matthieu Moy

답변:


108

그것은 어딘가에서 변경 사항을 병합하려고하지만 더러워진 파일의 수정 사항 (현재 작업 트리에서 수정 됨)을 포함합니다. 눈에 띄는 변경 사항을 커밋하거나 숨기고 업데이트 / 업데이트 / 업데이트를 수행하는 작업을 풀 / 리베이스 / 병합


4
실제로 풀이 아닙니다. 풀의 일부인 병합입니다. 동일한 문제로 로컬 브랜치를 병합하려고하면 동일한 오류가 표시되며 다른 병합 작업 (적용, 적용 적용 ...)이 동일한 오류가 아닌 경우 유사한 오류를 인쇄한다고 생각합니다.
Cascabel

아 고마워 실제로 말이됩니다. 다른 지점을 체크 아웃하기 전에 변경 사항을 커밋해야한다고 생각합니다.
rofrankel

7
검색 결과에 도움이 git svn rebase되는 경우 더러운 작업 복사본으로 작업 하려고이 문제에 부딪 쳤습니다 . 스 태쉬 저장, 리베이스, 스 태쉬 팝 그리고 모든 것이 세상과 옳았습니다.
Adam Tuttle

1
파일 자체는 변경되지 않을 수 있습니다. 권한과 같은 파일 속성을 변경하더라도 이로 인해 발생할 수 있습니다.
chiborg

22

다른 사람들이 지적했듯이 업데이트 메시지 필요 는 파일이 더럽 거나 오래 되었음을 의미합니다 . 하지만 그 대신 리셋을하고 다시 모든 것을 시작하는, 무엇을 할 수있는 것은 단순히 git status다음 git add <file> 경우 는에의 변경 목록입니다. 이미 파일을 추가 한 다음 변경할 수 있기 때문입니다. 이것은 나에게 일어 났고,이 간단한 add것으로 문제를 해결했습니다.


7

프로덕션 / 대상 서버에 cd응용 프로그램이 포함 된 디렉토리에 로그인 하고이 두 명령을 실행하십시오.

1. 최신 버전으로 재설정

경고, 이렇게하면 모든 변경 사항이 삭제됩니다.

git reset --hard HEAD

2. 변경 사항을 당겨

git pull origin master


1
[git reset --hard HEAD]가 나를 위해 일했습니다. Windows 공유 드라이브에서 커밋했지만 Ubuntu 디렉토리는 동일한 폴더 (Z : / var / www / html /에 매핑)에도 불구하고 방금 만든 커밋을 반영하지 않습니다. 이것을 실행하면 [git status]와 [git pull]이 모두 최신 상태임을 보여줍니다.
Keith DC

이것은 나에게도 도움이되는 솔루션입니다. Windows에서 SourceTree를 사용하여 git 하위 트리를 사용하려고 시도했지만 프로세스가 잘못되었습니다.
Artem Russakovskii 0시 39 분

3

연결된 다른 질문에 대한 답변과 마찬가지로 메시지는 단순히 변경 사항이 있음을 의미합니다. 를 사용하여 예를 들어을 변경 git add한 다음 마음을 바꾸고 다시 git reset HEAD file시작하려는 의도를 가진 경우에도 얻을 수 있습니다 .


2
git reset HEAD file같은 메시지가 나타납니다
전문가

2

리베이스 프로세스에서 추가 변경을 수행 할 때이 오류가 발생할 수 있습니다. 가 대상 분기에없는 파일을 .

나를 위해 까다로운 부분은 .gitattributes 내 저장소에 파일 . 새로운 이진 파일 형식이 다른 지점에 추가되었지만 텍스트 파일로 처리되었습니다. 파일이 git에 의해 repo에서 다운로드되었을 때, EOL (실제로는 이진 값 바이트 임)이 대체되어 이진 차이가 발생했습니다.

새로운 파일 형식을 바이너리로 처리하기 위해 새 항목을 추가하고 전체 프로세스를 다시 시도하면 문제가 해결되었습니다.


1

내 경우에는 계속

assets/ElipseThree.png: needs update
You must edit all merge conflicts and then
mark them as resolved using git add

디렉토리에 해당 파일이 있지만 현재 지점에서 이름이 바뀌 었습니다. 그래서 고치기 위해, 나는 달렸다

$ git mv assets/ElipseThree.png assets/elipseThree.png
$ git add assets/elipseHalfFull.png 
$ git rebase --continue

그리고 나는 계속할 수있었습니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.