2011-05-08 4 views
4

사용 사례 : 우리는 추적하기를 원하는 프로젝트 메타 데이터 파일을 가지고 있지만 거의 항상 로컬로 업데이트되지만 (다른 사용자는 다른 프로젝트 경로를 가짐) 거의 커밋되지 않습니다. 정규 시나리오에서는 사용자가 명시 적으로 요구하지 않는 한이 파일을 커밋하지 않아야합니다.파일을 추적 할 수는 있지만 업데이트 된 것으로 표시되지 않습니까?

추적되지 않은 파일에 대해서는 무시 무시가 사용됩니다.

git이 무시한 비슷한 기능이 있습니까 추적 파일? 중앙 repo에서 변경할 수있는 방법이 있으며 모든 사용자에게 반영됩니까?

+0

가능한 [git : 버전 제어 * 파일 무시] (http://stackoverflow.com/questions/5011390/git-ignoring-a-file-which-is-version-controlled) –

+0

나는 복제 할 수있다. 이 질문은 Git Duplicates SO Competition의 우승자입니다. –

+1

@Pavel : 필터 드라이버 인 OP의 컨텍스트에서 실제 솔루션을 언급 한 중복을 제외하고는. 아래 내 대답을 참조하십시오. – VonC

답변

3

내가 중앙 repo에서 변경할 수있는 방법은 모든 사용자에게 나타 납니까?

아니요 일반적인 (배포 된) 컨텍스트에서는 없음 : 어떤 종류의 후크 또는 프로세스도 중앙 위치에서 "변경"할 수없고 모든 배포 된 다운 스트림 repos에서 선택합니다.

사용자가 central template에 따라 레포를 만든 경우 일부 기본 훅은 중앙 스크립트 (즉, 동일한 네트워크의 사용자와 통화하는 경우 공유 디스크의 모든 사용자가 액세스 할 수있는 스크립트)를 참조 할 수 있습니다.


adymitrukanswer 그러므로 "공용"분기 (즉 가압 분기/인출) 전용 커밋 변경되지하는 개발 분기를 사용 주장한다. 잘 좋지만입니다
:

  • 이 (모두의 repos에 집행) 자동 프로세스가 아니라 액션이 개별적으로 (그들은 잊었 때문에 또는하지 않도록주의) 각 개발자
  • 이이 포함 촬영 어떤 경우에 개발 브랜치를 사용하여 게시 할 커밋에서 게시하고 싶지 않은 커밋을 정렬합니다.이 경우를 제외하고 개발자는 의 변경 사항을 기억하는 추가 단계를 수행해야합니다. 해당 특정 파일은 이 아니고이 공용 지사로 병합되어야합니다. 이제까지. (그/그녀는 실제로 그 특별한 변화를 별도의 커밋에서 분리하기 위해 시간을 들였습니다!)

사용하는 것이 더있을 것와 filter driver (A .gitattributes 파일에 선언하고 가 복제 통해 전파 될 수있는) :

enter image description here

  • a smudge 스크립트 :

    • 체크 아웃에 콘텐츠를 저장하여 메타 데이터 파일
    • 의 내용을 인식 할 수
  • clean 스크립트 : 당신의 메타의 내용을 인식 할 수

    • - 데이터 파일
    • 수정이 커밋되어야하는지 여부를 결정하십시오.
+0

당신의 대답은 항상 자리에있다. –

3
$ git update-index --assume-unchanged <filename> 

이것은 로컬에서만 작동합니다.

+0

역 동작에주의하는 것이 가치가있다 :'git update-index --no-assum-unchanged ' –

1

를 사용하여 개발 지점을 커밋에 그 메타 데이터 파일의 초기 내용을 복원 할 수 있습니다. 환경에 대한 구체적인 변경 사항을 커밋하십시오. 우리의 전략으로 다시 병합하십시오. 이제 이러한 변경 사항은 공개 지사와 공유되지 않습니다. 다른 대답은 개발 브랜치 사용의 요점을 놓치고 있습니다.

+0

좋은 점 : "개발 지점"이 누락되었습니다. +1. 그러나 그것은 OP의 특정 필요성을 해결하지 못합니다. OP의 특정 필요성을 해결하지는 않습니다. -1. 내 대답에 답을 포함 시켰습니다. – VonC

+0

참. @VonC와 마찬가지로 이것은 실제로는 문제가 아니지만 그럼에도 불구하고 관련이 있습니다. 감사. –

관련 문제