2017-11-21 17 views
1

다양한 설정 파일과 스크립트를 git에 넣으려고 합니다만,이 서버에서는 git이 이상하게 작동하며, 부모 디렉토리를 탐색하여 .git 분기 루트를 찾지 못하는 것 같습니다./etc에 보이지 않는 자식이 있습니다.

/ # git init 
/# git status 
# On branch master 
nothing to commit (use -u to show untracked files) 

지금까지 그렇게 좋았습니다.

/ # cd etc/ 
/etC# git status 
# Not currently on any branch. 
# 
# Initial commit 
# 
nothing to commit (create/copy files and use "git add" to track) 

허? - 내가 지사에 있어야하지 않아?

내가 무언가를 추가하려고하면 :

/etC# git add passwd 
fatal: Unable to create '//etc/.git/index.lock': No such file or 
directory 

되지 않는 이유는 분기 루트 (.git)에 대한 자식 검색 상위 디렉토리 ??

+0

'index.lock' 파일을 삭제하십시오. – Maroun

+1

git를 루트 디렉토리에서 초기화 하시겠습니까? 그렇다면, 그 이유는 무엇입니까? – Maroun

+0

문제를 재현 할 수 없습니다 (하지만 내가하는 일은 좋은 생각입니다). 당신의 환경 (Distro/release, git version 등)은 무엇입니까? – Mat

답변

1

이전에/etc에 git를 초기화했습니다. /etc/git과 git을 삭제하면 /.git 폴더에 저장됩니다. 이론적으로. 나는 당신이 /.git를 사용할 수없는 확실하지 않은 이유가 있다고 생각한다. GIT_DIR 환경 변수를 사용하여 위치를 재 지정해야합니다.

+0

/etc에는 .git이 없다. –

+0

실제로이 작업은 다음과 같습니다./etC# export GIT_DIR =/.git /etC# git status # 분기 마스터에서 커밋 할 내용이 없습니다 (추적되지 않은 파일을 표시하기 위해 -u 사용). –

+1

/.git를 사용하면 경계 사례입니다. Git은 파일 시스템 루트 폴더에 도달 할 때 .git 폴더 검색을 중지합니다. 이 경우 GIT_DIR은 가장 친한 친구입니다. –