원격 GitHub의 회색 아이콘은 무엇을 의미합니까?


83

누구든지 내 파일을 github에 푸시 할 때 회색 아이콘이 표시되는 이유를 알려주시겠습니까? 앱 디렉토리쪽에는 모델, 뷰 및 컨트롤러가 있어야하지만 원격 GitHub에서는 클릭 할 수 없습니다.

여기에 이미지 설명 입력

답변:


30

연결할 수없는 원격 위치를 가리키는 하위 모듈을 만든 것 같습니다.

이 답변을 참조하십시오 . 해당 아이콘이 녹색이면 하위 모듈을 가리 킵니다. 하위 모듈이 잘못 구성 되었기 때문에 귀하의 경우 회색으로 표시되었다고 가정합니다.

그 감안할 때 .gitmodules존재하지 않는, 그것은 원격 정보없이 하위 모듈을 떠나, 삭제되어 있어야합니다.

들어가서 app입력 git remote -v하면이 모듈이 가리키는 위치도 볼 수 있습니다. 이 장소는 현재 연결할 수 없습니다.

비슷한 시나리오에서 하위 모듈을 추가하고 .gitmodules. GitHub의 결과는 다음과 같습니다.

누락 된 하위 모듈


내가 git submodule update --init 시도했을 때 'app'경로에 대한 gitmodules에서 발견 된 하위 모듈 매핑이 없음을 반환합니다.
BC2

나는 git ls-tree --full-tree -r HEAD를 시도했고 100644 blob 6628083525c40f2abab01a69c4599d38380b18a5 Rakefile 160000 commit 60b600031853f5f4bbc0a2885caf5085bbf873fc app
BC2

앱을 제외한 모든 디렉토리는 blob이라는 단어를 사용합니다. n 앱에는 더 이상 디렉토리 파일이 없습니다.하지만 앱 내부의 실제 프로젝트에는 Model, View, Controller 등과 같은 몇 개의 디렉토리가 여전히 있습니다
BC2

무엇을 cat .gitmodules반환합니까? 실제 URL을 게시하지 마십시오
Boj

cat : .gitmodules : 해당 파일 또는 디렉토리 없음
BC2


24

Git은 내부에 .git 디렉토리가 있기 때문에 하위 모듈이라고 생각합니다. 고치다...

디렉토리를 문제가되는 디렉토리로 변경했습니다.

cd <offending git submodule>

그 안에있는 .git 디렉토리를 제거하십시오.

rm -rf .git

git 캐시를 업데이트합니다.

git rm --cached <offending git submodule>

상위 디렉토리로 이동하십시오.

cd ..

git에 디렉토리를 추가하십시오.

git add .
git commit -m "Changed submodule to directory"
git push --all

이것은 나에게 두통을 저장
Elroy 젝슨에게

좋은 대답입니다. 이 단계를 따르면 많은 혼란이 사라졌습니다!
gallen

훌륭한 대답입니다. 이것은 나를 혼란에서 구했습니다!
Ayubur Rahaman

이것은 몇 가지 대체 답변을 시도한 후 가장 정답입니다. 감사 힙
Platos - 자식

가장 많이 찬성되어야합니다. 한 가지, 부모 디렉토리로 이동 한 다음 git rm --cached <>
Tejas Sharma

20

폴더 내에서 git을 초기화 한 것 같습니다. 하위 폴더에서 git 파일 (rm -rf)을 삭제하고 새 저장소를 만들고 git을 다시 초기화합니다.


3
매우 간결한 답변! 방금 들어가서 숨겨진 파일을 활성화하고 내 프로젝트 내에서 숨겨진 git 폴더를 삭제 한 다음 다시 업로드했습니다. 간결하고 직접적인 답변에 감사드립니다.
twknab

1

앱 디렉토리 내에서 이미 git을 초기화했으며 리모컨을 찾을 수 없습니다. 앱 내에서 .git 파일을 삭제합니다. .

[app(master)]$ sudo rm -r .git

또는 폴더 안에 숨겨진 파일을 표시하고 수동으로 수행하십시오. 그런 다음 상위 폴더의 변경 사항을 다시 커밋하고 다시 푸시합니다.


1
<3 답변을 복사 - 붙여 넣기
사이먼 Somlai에게

1

내가 찾은 가장 쉬운 방법은 단순히 로컬에서 폴더를 제거하고 원격 저장소를 업데이트하는 것입니다. 로컬 디렉터리로 이동하여 잘못 설정된 .git 하위 폴더가 포함 된 폴더를 다른 위치 (예 : 데스크톱과 같은 로컬 저장소 외부)로 잘라내 문제를 수정하고 나중에 다시 복사 한 다음 다음을 실행합니다.

git submodule update

git add --all

git commit --all

git push

원격 저장소에서 회색으로 표시된 폴더를 제거해야합니다. 그런 다음 로컬 파일에 다시 폴더를 복사하고 위와 같이 add --all commit --all git push를 실행하십시오. 물론 먼저 하위 폴더에서 잘못 설정된 .git 폴더를 미리 삭제하여 동일한 문제를 방지하십시오. 다시; 리눅스 시스템에서 이것을 찾으려면 폴더 내에서 cntrl-h를 사용하여 폴더의 숨겨진 파일을 보면 문제를 일으키는 하위 폴더에 .git 폴더가 표시됩니다. 간단히 삭제하면 해결됩니다.


0

이미 내부에 .git이 있으므로 회색으로 표시됩니다. 즉, 내부에서도 git이 초기화되었습니다.


제 경우에는 폴더 안에 .git 폴더가 있고 폴더에 대한 하위 모듈을 자동으로 생성하는 것처럼 보였기 때문에 이것이 실제로 문제였습니다. 이 답변이 왜 표시되었는지 잘 모르겠습니다.
leoncc

0

제 경우 에는 프로젝트의 상위 폴더에 Git 저장소를 설정하기 전에 Heroku에 배포 할 때 루트 폴더 (manage.py가있는 폴더)에 git 저장소를 초기화했습니다 .

그런 다음 프로젝트의 상위 폴더에 새 저장소를 만들었을 때 모델 뷰와 컨트롤러를 처리하는 루트 폴더가 회색으로 표시되었습니다. 다음은 나를 위해 일했습니다.

  1. 상위 폴더 저장소 삭제
  2. 기존 저장소를 가져올 것이므로 "README로이 저장소 초기화"를 선택 하지 않고 새 저장소 만듭니다 .
  3. manage.py가있는 루트 폴더 내 에서 다음을 수행하십시오.

    git remote add origin "github repo link"

    git push -u origin master

  4. Github 저장소를 새로 고치면 모든 디렉토리가 있어야합니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.