전체 폴더를 반복적으로 저장소에 추가


250

GitHub의 마스터 브랜치에 브랜치를 추가하고 폴더를 해당 브랜치로 푸시하려고합니다.

분기의 폴더 구조는 SocialApp / SourceCode / DevTrunk / SocialApp과 같으며 모든 소스 코드 파일은 마지막 폴더에 있습니다.

다음 Git 명령을 사용하고 있습니다.

git add *
git commit -m with the message
git push

이것은 첫 번째 폴더 "SocialApp"만 GitHub에 푸시하고 폴더 안에있는 SourceCode 폴더를 무시합니다. 이 문제를 어떻게 해결합니까?


4
파일이 어디에 있습니까? 그들은 무시되지 .gitignore않습니까?
CharlesB

This is pushing only the first foldergit은 폴더에 신경 쓰지 않고 파일 만 신경 쓰십시오. 커밋을 보여주십시오-서브 모듈, 심볼릭 링크 또는 폴더가 아닌 다른 것을 커밋했습니다
AD7six

나는이 같은 문제가 있습니다. 나는 이것이 문제가 아니라 단지 예상되는 행동이라고 생각합니다. 놀랍게도 많은 솔루션이 있습니다.

참고 : 폴더가 비어 있으면 추적되지 않습니다. 빈 디렉토리를 유지하기 위해 빈 .keep 파일을 넣는 것이 좋습니다
Dude

답변:


356

.gitignore서브 디렉토리가 무시되면 파일을 점검하십시오 .

그런 다음 다시 시도하십시오

git add --all
git commit -am "<commit message>"
git push

4
여기에는 .gitignore에 언급 된 파일은 포함되지 않습니다. 나는 보통 수동으로 그것들을 추가하거나 다음과 같은 배치 파일을 사용한다 : for /R %%f in (*.*) do git add --force %%f( bitbucket.org/jeroenp/besharp.net/src/tip/Scripts/GIT/… )
Jeroen Wiert Pluimers

9
폴더의 전체 트리 구조를 재귀 적으로 추가하려면 명령은 다음과 같아야합니다.git add --all :/
Jason Hartley

7
@JeroenWiertPluimers git add -f -all는 .gitignored 파일을 추가하기 위해 노력합니다
Orwellophile

3
@JasonHartley 귀하의 의견은 답변이 될 수 있습니다. 감사!
ShutUpMagda

4
이것은 현재 폴더뿐만 아니라 git repo에 모든 스테이지되지 않은 파일을 추가하지 않습니까? 나는 그것이 원래의 질문이 요구하는 것이라고 생각하지 않습니다.
Ted

31

이것은 나를 위해 일했다 :

git add . --force

1
다른 답변은 파일 목록을 명령에 대한 인수로 계산해야하지만이 옵션은 그렇지 않으므로 더 나은 선택입니다.
topkara

3
확실히 최선의 대답입니다. 한 번의 편집은 --force무시를 여전히 존중하기를 원한다면 필요가 없다는 것을 언급하는 것 입니다.
GrafikRobot

31

설정-로컬 서버의 로컬 저장소-클라이언트가 LAN을 통해 로컬 서버에 연결됨

git add foldername/\\*

서버로 만들려면 ...

git commit -m "comments..."
git push remote_server_name master

대부분의 경우 사용자는 remote_server_name을 오리진으로 할당합니다 ...

git remote add remote_server_name username@git_server_ip:/path/to/git_repo

9
로 실패했습니다 fatal: pathspec 'foldername/\\*' did not match any files. 로 근무했습니다 git add foldername/\*.
Tpojka

차이 무엇 git add foldername/\\*git add --all?
Danijel

17

최상위 디렉토리에서 호출 된 "git add *"및 "git add SocialApp"은 모든 디렉토리를 재귀 적으로 추가해야합니다.

아마도 SocialApp / SourceCode / DevTrunk / SocialApp에 파일이 없을 것입니다. 이것이 바로 그 이유입니다.

"touch SocialApp / SourceCode / DevTrunk / SocialApp / .temporary"(및 .gitignore 확인)를 호출 한 다음 git add를 다시 시도하십시오.


2
나는 그렇게 생각하지 않는다, 나는 git add *를 사용하고 같은 문제가있다.

16

필자의 경우 이전에 git repo를 초기화했기 때문에 하위 디렉토리에 .git 폴더가있었습니다. 하위 디렉토리를 추가했을 때 포함 된 파일을 추가하지 않고 하위 프로젝트로 추가했습니다.

하위 디렉토리에서 git 저장소를 제거한 다음 폴더를 다시 추가하여 문제를 해결했습니다.


이것은 나를 위해 해결했습니다. 또한 수정 프로그램을 시작하려면 폴더 자체의 이름을 바꿔야했습니다.
Totem

6

나는 이것을 간단히 사용했다.

git add app/src/release/*

추가 할 폴더를 지정한 다음 *재귀 적으로 안에있는 모든 것을 추가 하는 데 사용 하면됩니다.


5

나는 약간의 시간이 소요되는이 문제에 부딪 쳤고 git은 빈 폴더를 저장하지 않는다는 것을 기억했다. 저장하려는 폴더 트리가있는 경우, git의 저장 공간에 영향을주기 위해 파일을 최소한 ".gitkeep"과 같은 해당 트리의 가장 깊은 폴더에 넣으십시오.


5

디렉토리와 그 안에있는 모든 파일을 재귀 적으로 추가하려면 추가 할 디렉토리가있는 디렉토리로 이동하십시오.

$ cd directory
$ git add directoryname

1
cd directory git add *
François Richard

3

또한 같은 문제가 있었고 .gitignore 파일이 없습니다. 내 문제는 다음과 같은 방법으로 해결되었습니다. 이것은 모든 하위 디렉토리와 파일을 가져 왔습니다.

git add <directory>/*

1

클라이언트 측 프로젝트와 함께 웹 서비스 소스 코드를 포함시키고 싶을 때가 있습니다. 둘 다 별도의 자식 저장소가 있습니다. 실제로 명령을 사용하여 모든 파일을 추가하는 데 사용됩니다.

git add -A

그러나 어떤 이유로 든 폴더 만 추가합니다. 나중에 서버 파일에도 .git폴더가 있으므로 명령이 작동하지 않는다는 것을 알았습니다 .

tl; dr : .git준비하려는 폴더 안에 폴더 가 없는지 확인하십시오 .


1
.git 폴더를 제거하지 않으려면 어떻게해야합니까?
롤 :


1


Windows 컴퓨터에있는 경우 파일이있는 폴더로 이동하여 명령 줄 인터페이스를 얻은 다음 git bash를 시작해야합니다.이 명령을 사용하십시오.

git init   //this initializes a .git  repository in your working directory

git remote add origin <URL_TO_YOUR_REPO.git> // this points to correct repository where files will be uploaded

git add *   // this adds all the files to the initialialized git repository

파일을 마스터에 병합하기 전에 파일을 변경하면 다음을 실행하여 변경 사항을 커밋해야합니다.

git commit -m "applied some changes to the branch"

이 체크 아웃 후 지점을 마스터 지점으로


언급 된 답변 만init
Atul

1

시나리오 / 솔루션 1 : / 가 파일 에
없는지 확인하십시오 . FolderSub-folder.gitignore


시나리오 / 솔루션 2 :
기본적으로 git add .재귀 적 으로 작동합니다.


시나리오 / 솔루션 3 :
git add --all :/ 작동 git add .하지 않는 곳에서 원활하게 작동합니다.
(@JasonHartley 님의 댓글)


시나리오 / 솔루션 4 :
개인적으로 직면 한 문제 Subfolders or Files는 여러 가지에서 공통적으로 발생하는 문제 Folders였습니다.

예를 들면 다음과 같습니다.
Folder/Subfolder-L1/Subfolder-L2/...file12.txt
Folder/Subfolder-L1/Subfolder-L2/Subfolder-L3/...file123.txt
Folder/Subfolder-L1/...file1.txt

그래서 Git추가하는 저를 추천했다 git submodule나는 시도했지만 고통이었다.


마지막으로 나를 위해 일한 것은 다음과 같습니다.

1. git add파일의 마지막 끝 / 레벨에있는 하나의 파일 Folder.
예를 들면 다음과 같습니다.
git add Folder/Subfolder-L1/Subfolder-L2/Subfolder-L3/...file123.txt

2. git add --all :/now.
그것은 것입니다 매우 신속하게 모든 추가 Folders, Subfolders하고 files.



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