오픈 소스 라이브러리의 GitHub 포크가 있습니다. 해당 포크의 내 로컬 복사본에 포함 된 CMakeLists.txt (및 다른 파일)의 많은 부분을 수정하여 전체 라이브러리를 컴파일하지 않도록했습니다 (필요하지 않은 것들이 많이 있기 때문에). 따라서, 부드럽게 내 변화를 통합하기 위해 내가당기거나 가져올 때 로컬로 수정 된 파일을 다루는 방법은 무엇입니까?
git update-index --assume-unchanged <files>
을 그래서 내가 그 파일을 변경하지 않은 것처럼 나에게 자식을 사용할 수 있습니다. 그러나, 원격 변경이 있고 내가 그들을 끌어하려고 할 때마다 (또는 내가 새로운 지점을 생성 할 때마다), 나는 다음과 같은 오류 얻을 :
error: Your local changes to the following files would be overwritten by merge:
CMakeLists.txt
demos/CMakeLists.txt
<other files>
Please, commit your changes or stash them before you can merge.
Aborting
그래서 내가 수동으로 모든 변경 사항을 취소해야하고, git update-index --no-assume-unchanged <files>
을 다시 당기고 다시 실행하면 다시 변경되며 update-index
입니다. 거의 매일해야하기 때문에 이것은 고통 스럽습니다.
내가 원하는 것은 변경된 사항이 있으면 로컬로 수정 한 파일을 업데이트하는 것입니다 (실제로 변경 될 가능성이 없으므로 충돌 가능성은 낮습니다).하지만 변경 사항을 유지하고 git을 유지해야합니다. 그들은 변화하지 않았다고 가정합니다.
더 좋은 방법이 있나요?
편집 : 죄송합니다. 이미 문의하신 경우 죄송합니다. 나는 그것을 찾고 있었지만 나는 나의 특정한 경우에 대한 응답을 찾을 수 없었다. 고맙습니다!
내 질문을 이해하지 못한다고 생각합니다. 오류가있는 파일은 --assume-unchanged이므로 커밋하고 싶지 않습니다. –
맞아, 정상적으로 "추가"하고 커밋합니다. Git의 모든 목적을 상쇄하는 작업 디렉토리에만 변경 사항을 저장하고 싶지는 않습니다. –
정상적으로 커밋하고 update-index와 그 내용을 잊어 버리시겠습니까? 그럼 풀 요청을 원한다면 어떨까요? 나는 모든 변화를 제거해야 할 것이다. –