Git-파일을 추가하지 않습니까?


80

내 저장소에 파일을 추가 할 수없는 문제가 있습니다.

일부 Ruby 개발을 위해 Aptana Studio의 Windows에서 GIT를 사용하고 있습니다.

몇 개의 파일을 GitHub로 푸시했지만 그 후 모든 것이 작동을 멈췄습니다. 예를 들어 마스터 디렉토리에 2 개의 루비 파일이있는 새 하위 폴더가 있습니다. 내가 "git add."를 호출 한 다음 "git status"를 호출하면 "working directory clean"이 계속 표시되고 커밋 할 항목이 없습니다.

"git add folder / myfile.rb"를 시도했지만 여전히 아무것도 없습니다.

누구든지 내가 시도 할 수있는 아이디어가 있습니까?


2
농담이 아니라 컴퓨터를 다시 시작하십시오
manojlds 2011-09-20

내 쪽에서는 어리석은 실수 였고, 나는 거북이 자식을 사용하고 있으며 변경 사항을 커밋 할 때 확인란 이 있으며 내 쪽에서 확인되지 않았으며 로컬에만 새 파일이 있으므로 조심하십시오!
BotanMan

1
나는 프로젝트 smh의 하위 디렉토리 안에 있었다
Jacksonkr

@Jacksonkr,이 솔루션은 이미 아래 gaoagong의 답변으로보고되었습니다.
questionto42

답변:


146

나는 포스터와 비슷한 상황에 처해 있었다.

내가 "git add."를 호출 한 다음 "git status"를 호출하면 "working directory clean"이 계속 표시되고 커밋 할 항목이 없습니다.

하지만 여기에있는 것과는 다른 해결책이있었습니다. 처음 왔기 때문에 다른 사람들에게 시간을 절약하고 싶습니다.

위의 답변과 다른 곳에서 본 것에서이 문제에 대한 일반적인 수정 사항은 다음과 같습니다.

  • 해당 파일에 실제로 저장된 변경 사항이 있는지 확인
  • 파일이 .gitignore및 의 제외 규칙을 충족하지 않는지 확인하십시오..git/info/exclude
  • 빈 폴더를 추가하지 않도록하십시오. Git은 그것들을 추적하지 않습니다. 표준 솔루션은 .gitkeep자리 표시 자로 명명 된 빈 파일을 배치하여 git이 폴더를 추적하도록하는 것입니다.

제 경우에는 원래 기존 리포지토리 주변에 git 리포지토리를 만들려고했습니다 (그게 존재하는지 알지 못함). .git얼마 전에이 하위 저장소에서 폴더를 제거 했지만 너무 늦었다는 사실을 몰랐고 git은 이미 하위 모듈 로 추적하고있었습니다 . 여기 에서 이러한 기능과 제거 방법에 대해 자세히 알아볼 수 있지만

  • 나를위한 해결책은 단순히 실행하는 것이 었습니다 git rm --cached path_to_submodule.

29
생명의 은인! 입력 만하면 git rm --cached name_of_former_submodule경로가 자동으로 지정됩니다.
leymannx 2014-06-17

8
서브 모듈이란 무엇입니까
Muhammad Umer 2016

그게 내 문제인지 어떻게 알 수 있습니까? 그 인식하는 방법을 모른다
PlayHardGoPro

1
@MuhammadUmer 공식 Git readme의 하위 모듈 페이지 에서 더 자세히 설명합니다.
zrisher

30

다른 사용자를 위해 가능한 솔루션을 추가하려면 :

Windows에서 폴더 이름의 대소 문자를 변경하지 않았는지 확인하십시오.

SetupGit에 의해 제어되고 GitHub에서 호스팅되는 폴더 가 Windows 시스템에서 수행 되는 유사한 문제가 발생 했습니다.

어느 시점에서 폴더를 setup(소문자 S) 로 변경했습니다 . 그 시점부터 새 파일을 설치 폴더에 추가했을 때 폴더가 setup아닌 폴더에 저장 Setup되었지만 Windows 시스템에서 개발 중이었기 때문에 Setupgit / github 의 기존 폴더가 setup.

그 결과 setupGitHub 에서 모든 파일을 볼 수 없었습니다 . 나는 내가 * nix에서 스크립트 시스템에서 프로젝트를 복제하면 나는 두 개의 폴더를 본 것이라고 의심 Setup하고 setup.

따라서 Windows 시스템에서 포함하는 폴더의 대소 문자를 변경하지 않았는지 확인하십시오.

  • 폴더 이름을 다음과 같이 변경 setup-temp
  • git add -A
  • git commit -m "Whatever"
  • 폴더 이름을 원하는 이름으로 다시 변경하십시오.
  • git add -A
  • git commit -m "Whatever"

7
이것은 파일 이름으로 나에게도 일어났습니다. 저장소가 해결됩니다 자식 MV -f newFileCase oldFileCase를 사용
브라이언 DiCasa

나는 osx에서 케이스 문제가있었습니다. 불행히도 * nux 파일 시스템 임에도 불구하고 일반적으로 git과 같은 * nux 도구에 문제를 일으킬 수있는 대소 문자를 구분하지 않는 것으로 설정되어 있습니다.
Pellet

감사합니다, 당신은 내 일 저장
Zhenya

당신은 "같은 이름"의 파일뿐만 같은 문제의 원인이 힘도 다른 케이스 변경 보류중인 경우
마우 그라시아 구티에레즈

git이 기대하는 oldFileCase를 어떻게 찾을 수 있습니까?
diemo 19-06-24

24

파일이에서 제외되고 .gitignore어쨌든 추가하려는 경우 다음을 사용하여 강제 할 수 있습니다.

git add -f path/to/file.ext

감사합니다! 이것은 정말 나를 도왔습니다. 어떤 이유로 내 파일이 제외되었고 ( .gitignore이유가 확실하지 않아요!) 내 문제가 해결되었습니다!
benmaq

13

이상하지만 밤새도록 파일을 추가하기 위해 자식과 싸웠습니다. 이미 추가 된 것으로 밝혀졌습니다. 내 계정에서 파일에 액세스 할 수없고 내 IDE가 SSH를 통해이를보고하지 않았기 때문에 변경 사항이 저장되지 않았기 때문에 Git이 내 변경 사항을 선택하지 않았습니다.

요컨대, 저장소에 이미 추가되어 있지 않은지 확인하십시오.


1
... 이렇게 생각 git하면 주어진 경로가 이미 저장소에있는 경우 메시지를 추가 할 수 있습니다. 최소한 13 명의 사람을 몇 분 동안 절약했을 것입니다.
jjmontes

13

더블은 확인 .gitignore해야합니다 파일이 망할 놈 볼 수 할 수 있는지 확인하기 위해 파일을. 마찬가지로 파일 .git/info/exclude과 마찬가지로 프로젝트에서 파일 / 디렉토리를 '제외'하는 .gitignore파일이 있습니다.


나는 또한 ... 파일이 어떻게 든 "이미 추가"여부되지 않도록 한 번 확인에 추가 할 것
rogerdpack

9

나는 방금이 문제가 있었고 문제는 내가 최상위 수준이 아닌 디렉토리 안에 있다는 것이 었습니다. 최상위 수준으로 이동하면 작동했습니다.


2
git add ..내 변경 사항이 존재하는 수준에 도달하는 데 필요한 모든 것을 사용할 수 있었으며 또한 효과가 있었을 것입니다. 이것은 여기에 문제가 있습니다 (내 사용자 오류).
gaoagong

8

가장 좋은 방법은 폴더를 복사하는 것입니다. 원본을 삭제하십시오. github에서 프로젝트를 복제하고 새 파일을 복제 된 새 폴더에 복사 한 다음 다시 시도하십시오.


이것은 CygWin에서 git을 사용하고 "권한이 잘못되었습니다"라는 메시지를받는 데 도움이되었습니다. 변경된 파일을 복제하고 복사 할 필요도 없었고 디렉토리를 그대로 복제했습니다. Windows가 모든 것을 다시 쓰도록 강요하는 것은 권한 문제를 해결한다는 것을 의미한다고 생각합니다.
RoG

5

폴더의 첫 번째 프로그램에서이 문제가 발생했습니다. 나는 "git add"다음 "git commit"을했다. "git status"는 "커밋 할 항목 없음, 작업 디렉토리 정리"오류를 설명했습니다.

프로그램 폴더에서 .git 파일을 삭제했습니다. 그런 다음 새로운 git init, git add 및 git commit을 수행했으며 작동했습니다.


저에게는 그 반대였습니다. 병합 (리베이스) 충돌이 발생 하여 파일 cd폴더로 이동해야 git add했습니다.
LosManos

3

표준 절차는 어떻습니까?

git add folder
git commit

이렇게하면 단일 명령으로 폴더와 모든 파일이 추가됩니다.
git은 빈 폴더를 저장할 수 없습니다.

커밋이 작동하지 않으면 확인해야 할 첫 번째 장소는 아마도 .gitignore.


6
git은 빈 폴더를 저장할 수 없습니다. 타이!
Blundell 2012

3

여기 에서 동일한 문제에 대한 답을 찾을 수 있습니다.

기본적으로이 경우 문제는 global_git ignore


2

제 경우에는 문제가 SafeCrLf 옵션을 활성화했습니다. 나는 거북이 새끼와 함께 창문에 있습니다. 옵션을 비활성화 한 후 파일 추가는 더 이상 문제가되지 않았습니다.


2

또 다른 문제는 파일 권한 일 수 있습니다. 발급 시도 : chmod 755 file1


2

어리석은 해결책 이었지만 github.com이 방금 푸시 한 파일을 표시하지 않았기 때문에 새 파일을 추가하고 푸시하지 않는다고 생각했습니다. 내가 추가 한 파일이 다른 지점에 있다는 것을 잊었습니다. 파일은 잘 밀었습니다. 그들을보기 위해 마스터 브랜치에서 github의 새 브랜치로 전환해야했습니다. 그 중 몇 분을 잃었습니다 :)


1

GitHub 에서 복제 된 빈 저장소에 첫 번째 파일을 추가하는 것은 불가능합니다 . GitHub에서 생성하도록 제안하는 README 링크를 따라야합니다. 온라인 에서 첫 번째 파일을 만든 후 git로 정상적으로 작업 할 수 있습니다.

2016 년 11 월 17 일 나에게 일어난 일입니다.


1

나는 여전히 git의 초심자이며 한 문장으로 긴 이야기를 한 어리석은 실수였습니다. @gaoagong가보고 한 것처럼 나는 하위 폴더에 있지 않았지만 반대로 부모 폴더에있었습니다. 이상하게도 그 대답에서 아이디어를 얻지 못했습니다. 대신 테스트했을 때 아이디어가 나왔습니다 git add --all. 아래 긴 이야기를 참조하십시오.

자세한 예. 실제 저장소 :

여기에 이미지 설명 입력

실수로 부모 수준에서 열었던 부모 폴더 (제 경우에는 vscode_git) :

여기에 이미지 설명 입력

리포지토리를 복제했지만 대신 열었던이 리포지토리 위에 부모 폴더가 있었는데 git add 'd:\Stack Overflow\vscode_git\vscode-java\.github\ISSUE_TEMPLATE.md', 아무 작업도하지 않고 경고 메시지도없는 하위 폴더의 리포지토리 파일을 추가해 보았습니다 git status.

커밋에 추가 된 것이 없지만 추적되지 않은 파일이 있습니다 (추적하려면 "git add"사용)

여기에 이미지 설명 입력

달리기 git add --all는 나에게 노란색 노트를 주었다.

경고 : 임베디드 git 저장소 추가 : vscode-java는 임베디드 저장소이며이를 얻는 방법을 모릅니다.

힌트 : 하위 모듈을 추가하려면 다음을 사용하십시오. git submodule add vscode-java

힌트 : 실수로이 경로를 추가 한 경우 git rm --cached vscode-java를 사용하여 색인에서 삭제할 수 있습니다.

자세한 내용은 "git help submodule"을 참조하십시오.

여기에 이미지 설명 입력

이 문제를 해결하려면, 나는를 복귀 git add --all와 함께 git rm --cached -r -f -- "d:\Stack Overflow\vscode_git\vscode-java" rm 'vscode-java':

여기에 이미지 설명 입력

그런 다음 대신 실제 repo 폴더를 열면

여기에 이미지 설명 입력

자식이 다시 예상대로 작동했습니다. 물론 상위 폴더의 ".git"폴더를 삭제할 수 있습니다.

여기에 이미지 설명 입력


1

git 초기화 저장소를 재귀 적으로 제거 할 수 있습니다. $cd repo added $git rm -rf git

별도의 브랜치를 생성하고 서브 모듈을 마스터 브랜치에 연결할 수 있습니다. 서브 모듈에 대한 문서는 정말 유용합니다. 문서 [https://git-scm.com/book/en/v2/Git-Tools-Submodules]

또한 [/programming/36236484/maintaining-a-git-repo-inside-another-git-repo]에서 몇 가지 솔루션을 참조하세요.


0

나는 잠시 동안 주변을 검색하고 git add 명령이 작동을 멈춘 원인이었던 SSH 포트를 차단했다는 것을 알게되었습니다. 다음 명령으로 https를 사용하여 원본을 변경했습니다. git remote set-url origin [url-to-git-repo]


0

나는 이것이 정말 오래된 질문이라는 것을 알고 있지만 누군가에게도 발생할 수 있다는 것을 알고 있습니다 .AUX.JS라는 파일로 작업하고 있었고 thi는 Windows 용으로 예약 된 파일 이름입니다. 이로 인해 다음 오류가 발생했습니다.

치명적 : 'src / hoc / Aux.js'를 stat 할 수 없음 : 해당 파일 또는 디렉토리 없음

그래서 당신은 파일을 제거하거나 이름을 바꿀 수 있습니다.

최종 결론은 다른 모든 유효한 답변 외에도 Windows 시스템에서 'git add'명령의 출력을 확인하는 경우 추가 정보를 제공 할 수도 있습니다.


Windows에서도 이런 일이 발생합니다. 해당 OS에서 git bash를 사용하여 Aux.js 파일을 정상적으로 만들었습니다
Alex

0

SiteGround Git에서 Mac으로 복제 한 저장소와 동일한 문제가 발생했습니다. 새로 복제 된 저장소에는 git status커밋에 추가해야 한다고 말한 변경된 파일 목록이 있지만 추가 또는 체크 아웃을 시도해도 아무 작업도 수행되지 않았습니다.

어떤 이유로 파일 이름에 대소 문자가 변경되었습니다 (예 : .jpg-> .JPG). 해결책은 단순히 git mvOS가 git이 사용하고있는 이름에 사용하는 파일 이름을 지정하는 것입니다. 예 :

git mv File_That_Wont_Add.txt File_THAT_WONT_Add.txt

0

최근에 Windows 7을 실행하는 컴퓨터에서이 문제가 발생했습니다. git 명령 창 인터페이스를 사용하고 있습니다. 해결책은 git add를 수행 할 때 파일 및 디렉토리 이름의 대소 문자 구분에 대해 매우주의하는 것이 었습니다. git은 케이스가 Windows 파일 시스템 파일 및 디렉토리 이름의 대소 문자와 정확히 일치하지 않을 때 불평하지 않지만 파일을 추가하지 않습니다. 커밋 할 것이 없습니다. 정확히 대소 문자를 사용하여 파일 이름을 입력하면 의도 한대로 커밋되도록 변경 사항 아래에 추가되고 나열됩니다.


0

나는 Visual Studio 에서이 문제를 겪고 있었고 나를 위해 일한 것은 다음과 같습니다. 1- git에서 인식하지 못하는 추가 된 파일을 마우스 오른쪽 버튼으로 클릭하십시오. 2- "소스 제어에 제외 된 파일 추가"를 선택합니다.


0

나는 같은 문제가 있었고 일부 파일을 사용하는 프로그램이 있었기 때문에 Visual Studio가 해당 파일을 잠근 경우 git이 오류를 던졌습니다.


0

한 폴더의 파일이 Github 소스 제어에 추가되지 않는 문제가있었습니다. 이를 해결하기 위해 해당 폴더 아래에 생성 된 .git 폴더를 삭제했습니다.


0

비슷한 문제가있었습니다.

문제는 Windows의 인덱스에서 비 스테이지 영역에있는 것과 다른 경우에 파일이 추가되었다는 것입니다. 예를 들어, 색인에서 파일은 이름 xx.txt이고 준비되지 않은 영역에서 파일은 names Xx.txt입니다.

색인 ( xx.txt) 에서 대소 문자가 잘못된 파일을 제거했습니다 . 그런 다음 올바른 대소 문자 ( Xx.txt)로 파일을 추가 할 수있었습니다 .


0

문제 git이 변경된 파일을 추가하지 않습니다. git bash를 사용하여 폴더 이름을 큰 따옴표로 구분하는 폴더를 변경했습니다. ls는 폴더 내용을 올바르게 표시했지만 git은 변경된 파일을 추가하지 않습니다.

솔루션 폴더 이름을 구분하기 위해 작은 따옴표를 사용했습니다.

예 : CD "폴더 이름"git 상태 커밋 할 필요 없음, 작업 트리 정리 CD .. ls '폴더 이름'CD '폴더 이름'git 상태 수정 : ModifiedFileName.bat


0

위의 모든 것을 시도했지만 아무것도 작동하지 않았습니다. 나중에 관리자 로 명령 프롬프트를 실행하고 스테이징-> 커밋-> 원격 추가-> 푸시와 같은 모든 단계를 다시 시도했습니다. 마법처럼 작동했습니다. 변경 사항은 원하는 원격 저장소에 반영되었습니다.

도움이되기를 바랍니다. :) 침착하고 코딩을 계속하십시오.

추신 : 나는 새로운 꿀벌이며 실수로부터 배우려고 노력합니다.


0

.NET 사이에서 파일 이름을 바꿀 때 비슷한 일이 발생했습니다 Uppercase/Lowercase. 따라서 임시 파일 이름 변경으로 문제를 해결할 수 있습니다.


0

이 경우 전역 .gitignore 파일에서 규칙을 확인하고 폴더가 규칙에 맞지 않는지 확인하십시오.


0

다음은 내 작업을 수행하는 방법입니다.

나는 시작했다

git init 

포함하고 싶은 모든 파일 / 폴더가있는 디렉토리 안에 있습니다.

나는 달렸다

git add --all
git add .
git commit -m "uploaded fixed sources 3"
git push origin master

그때

원본 외부에 다른 디렉토리를 만들고 해당 디렉토리로 이동 한 다음 github의 페이지에 설정된대로 http : //../../.git 파일을 사용하여 기존 git repo를 복제했습니다.

소스를 복제하면 (readme.md 만 가지고있는) 이전 디렉토리의 모든 파일을 다음을 사용하여 새 디렉토리로 복사했습니다.

cp -rf ../../* .

그런 다음 다시 추가 한 다음 해당 편집 내용을 커밋하고 푸시했습니다.

git add --all
git add .
git commit -m "uploaded fixed sources 4"
git push origin master

이유는 묻지 마십시오. 이번에는 github 사이트에 업로드하고 .zip tarball에서 액세스 할 수있는 파일로 나타났습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.