힘내 모든 하위 디렉토리 추가


84

폴더와 모든 하위 디렉토리를 내 자식 저장소에 추가하는 데 문제가 있습니다. 나는 이것이 인터넷 검색을 한 후에 매우 인기있는 질문이라는 것을 깨달았고 운없이 각 제안, 특히 git-addman 페이지 의 제안을 시도했습니다 . 나는 git add -A성공하지 못했다. 간단하게하기 위해 git 저장소를 Dir1. 그런 다음 파일의 디렉토리 구조는 다음과 같습니다.

Dir1/file1-1.txt
Dir1/file1-2.txt
Dir1/Dir2/file2-1.txt
Dir1/Dir2/Dir3/file3-1.txt

내 실제 파일에는 5-6 레벨 깊이의 하위 디렉토리가 있으므로 각 하위 디렉토리의 모든 파일을 내 저장소에 추가하는 git 명령이 있습니까? 지금은 man 페이지에서 제안을 할 때 내 저장소에서 git add Dir1/\*볼 수 Dir2있지만 녹색 폴더로 표시되고 열 수 없으므로 모든 파일 / 폴더가 Dir2가져 오지 않았다고 믿게됩니다. 추가되었습니다. 어떤 도움이라도 대단히 감사하겠습니다. 저는 새로운 git 사용자입니다 (사용한지 1 주일 미만). 지침을 초보자 수준으로 유지하십시오.


2
git add모든 디렉토리는 자동으로 재귀됩니다. git add .저장소의 최상위 수준에서 사용하면 모든 것이 추가됩니다. 그렇지 않은 경우 작동 중 .gitignore입니다 (로컬 또는 글로벌).
Nevik Rehnel

확인 했어 .gitignore? 어떻게 든 귀하의 디렉토리가 무시 될 수 있습니다.
ogzd

2
의 출력은 git status --ignored무엇입니까?
Chronial

1
이 질문을 보는 다른 사람들을 돕기 위해, 만든 디렉토리에 파일이 없으면 추가되지 않습니다 git add .. git이 파일을 추적 할 수 있도록 디렉토리에 파일을 추가해야합니다.
사라 피싱

답변:


106

하다,

git add .

저장소의 루트에 있습니다. 모든 것을 추가합니다. 을 수행 git add *하면 파일 *포인트 만 추가 됩니다. 단일 점은 디렉토리를 나타냅니다.

위의 명령 이후에 git index / repo에 디렉토리 나 파일이 추가되지 않은 경우 .gitignore 파일 에서 git에 의해 무시 된 것으로 표시되었는지 확인해야 합니다.


8
방금 시도했습니다. 그래도 작동이 안되는. 나는 git add했다. git commit git push origin master 뭔가 빠졌나요?
Josh Bradley

4
파일이 Dir1에 있다고 가정하면 cd Dir1; git init; git add . ; git commit;다른 작업이 필요 하지 않습니다. 당신은 어떤 디렉토리에 .gitignore 무시하고 파일이 여전히 추가하려는 경우, 당신은 할 필요가 git add -f .대신 git add ..
Kalle Pokki

5
나는 "git add"를 시도했다. 하지만 작동하지 않았습니다. 다음날 다시 들어가서 모든 것이 "그냥 작동"했으니 감사합니다! 빛이 다시 들어 오면 사라지는 한밤중의 벌레 중 하나 였을 것입니다.
Josh Bradley

2
git add. 작동하지 않으며 하위 디렉토리와 그 내용을 재귀 적으로 추가하지 않습니다.
별로 알고

일관되게 작동하려면 새 명령 창을 열어야 할 수도 있습니다.
케이지 래틀 러


13

하위 디렉토리 자체가 git 저장소 인 경우에도 문제에 직면 할 수 있습니다. 즉 .git 디렉토리가 .git 디렉토리로 확인됩니다 ls -a.

제거하려면 하위 디렉토리 및 rm .git -rf.


2
OSX 10.11.6 터미널에서 사용 : rm -rf .git
Sébastien REMY

2
똑같지 않나요?
PaulB

5

또한 어려움을 겪었지만 올바르게 입력했습니다.

git add -f ./JS/*

여기서 JS는 하위 폴더와 파일을 포함하는 내 폴더 이름이었습니다.


2
무시 된 파일을 추가하고 저장소를 엉망으로 만들 수 있습니다.
changtung

1

이것이 사실인지 확실히 말할 수는 없지만 나에게 문제가 된 것은 일부 하위 디렉토리에 .gitignore 파일이 있다는 것입니다. 다시 말하지만, 이것을 보장 할 수는 없지만 삭제 된 후에는 모든 것이 작동했습니다.


0

대부분의 경우 .gitignore 파일 플레이에있다. .gitignore 파일은 저장소의 루트 수준뿐만 아니라 모든 하위 수준에도 나타날 수 있습니다. 루트 수준에서 이것을 시도하여 찾을 수 있습니다.

찾기 . -이름 ".gitignore"

그런 다음 결과를 조사하여 하위 디렉토리가 추가되지 않도록 할 수 있습니다.

관련된 하위 모듈도있을 수 있습니다. ".gitmodules"파일에 대해 문제가되는 디렉토리를 확인하십시오.


0

이전에 추가하려는 (하위) 폴더의 이름이 "_Something_"으로 시작했을 때이 문제를 보았습니다.

나는 밑줄을 제거했고 작동했습니다. 폴더에 문제를 일으킬 수있는 문자가 있는지 확인하십시오.

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