2017-04-17 2 views
0

내 프로젝트의 특정 설정 파일에 환경 설정이 아닌 로컬 환경에 다른 설정이 있어야하며 변경하거나 숨기고 싶지 않습니다./파일을 내가 사용하는 것을 알아 냈다 I 메인 저장소git 'skipworktree'는 git에서 파일을 업데이트하지 못하도록합니다.

에 뭔가를 밀어 때마다 팝업 :

git update-index --skip-worktree <file> 

나를 정확하게 작업을 수행 할 수 있습니다합니다.

나는 한 가지 질문이 있습니다. 다른 누군가가 config 파일을 변경하고 변경 사항을 주 저장소에 넣고 다음에 변경 사항을 가져 오면 내 로컬 구성 파일이 업데이트 될 것입니다.

+0

[스파 스 체크 아웃 설정] (https://stackoverflow.com/a/37066742/2303202) – max630

답변

1

config 파일 버전 제어를 할 쓸모없는 경우 당신은 더 나은 .gitignore에서 파일을 무시하는 것 (당신이 다른 지역에서 Config 할 필요가 있기 때문에) :

touch .gitignore 
echo <file> >> .gitignore 
git rm <file> --cached 
git add . 
git commit -m 'message' 
git push 

이유는 왜 아래 git update-index --skip-worktree <file>을 사용합니다 :

  • 설정 파일

    로컬 변경,하지만 당신은 git pull을 실행하는 경우에만 원격으로 업데이트되지 않으며, 설정 파일은 원격으로 갱신됩니다. 설정 파일은, 때 로컬 변경
error: Your local changes to the following files would be overwritten by merge: 
     file 
Please commit your changes or stash them before you merge. 
Aborting 
  • :
  • 설정 파일은 git pull을 실행할 때 두 자식은 충돌을 감지하고 것, 로컬 및 원격 변화는 다음과 같이 오류가 표시됩니다 당신이 다른 지점을 체크 아웃하려면, 자식이 표시됩니다
error: Your local changes to the following files would be overwritten by checkout: 
     file 
Please commit your changes or stash them before you switch branches. 
Aborting 
  • git update-index --skip-worktree은 일반적으로 일시적으로 사용됩니다.

git update-index --skip-worktreehere의 사용량을 비교할 수도 있습니다.

+0

자세한 답변을 주셔서 감사합니다.하지만 skip-worktree가 git pulls 및 branch checkouts에 의해 무시되도록 파일을 표시한다고 가정 할 때 혼란 스럽습니다. . 이 경우에는 git update-index --skip-worktree 유틸리티가 이해가 안됩니다. – Snedden27

+0

Skip-worktree는 작업 디렉토리 버전이 최신이며 인덱스 버전을 대신 읽는 것으로 가장합니다. 그러나'git pull' 또는'git checkout branch'를 사용하면 현재 인덱스가 삭제되기 때문에 건너 뛰기 작업 트리가 작동을 멈 춥니 다. –

0

설명서는 약간 분명합니다. 내 테스트 (버전 2.12.0.windows.1 사용) 리모컨에 --skip-worktree으로 표시된 파일의 변경 사항이 포함되어 있으면 가져올 수 없습니다. (로컬 변경 사항을 덮어 쓰는 작업에서 일반적인 오류가 발생합니다.이 문제를 해결하기 위해 여러 가지 방법을 시도했지만 작업 한 유일한 것은 건너 뛰기 작업 트리 비트를 지우는 것이 었습니다. 로컬 변경.)

개인적으로 나는이 해결책이 꽤 지저분하다고 생각한다. (a) 환경 별 설정이 소스 제어가 없거나 (예 : .gitignore의 경로에 저장되어 있거나 저장소 외부에있는 경우) 또는 (b) 각 환경에 대한 파일 버전을 유지하도록 설정하는 것이 좋습니다. "능동적 인"것을 선택하는 수단은 출처가 통제되지 않는다.

+0

파일을 찾을 수 없습니다. 지금 당장 내 로컬 파일을 숨기고 끌어 당긴 후 은닉 파일을 다시 가져옵니다. 그러나 나는 더 쉬운 방법으로 이것을 할 수 있기를 바랐다. – Snedden27

+0

로컬 인 것을 의미하는 변경을 피하기 위해 수작업에 의존한다면, 그것은 실패 사이의 시간 문제 일 뿐이다. 오,하지만 실수를 저 지르지는 않습니까? 시원한. 여러분 모두 함께 일하고 있습니까 (아니면 앞으로 나아갈 것입니까?)? 이봐 요, 나는 당신이 당신의 레포로 무엇을하는지 상관하지 않지만, 질문을 던지거나 그 다음에 푸우를 푸우하지 말고 실제로 문제를 해결하는 정확한 방법입니다. (다른 답변이 실제로 똑같은 조언을주는 것을 보았습니까?) –