Tüm klasörü sürekli olarak bir depoya ekleyin


250

GitHub'daki ana şubeye bir şube eklemeye ve bu şubeye bir klasör aktarmaya çalışıyorum.

Şubenin klasör yapısı şöyle görünür: SocialApp / SourceCode / DevTrunk / SocialApp ve tüm kaynak kod dosyaları son klasördedir.

Aşağıdaki Git komutlarını kullanıyorum:

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

Bu sadece ilk klasörü "SocialApp" GitHub üzerine itiyor ve klasörün içindeki SourceCode klasörünü yok sayar. Bunu nasıl düzeltirim?


4
herhangi bir yerde dosyalar var mı? görmezden gelmediler .gitignoremi?
CharlesB

This is pushing only the first folder- git klasörleri hiç umursamıyor, sadece dosyalar. lütfen taahhüdü gösterin - ya bir alt modül, bir sembolik bağlantı ya da klasör olmayan başka bir şey
yaptınız

Aynı sorunu yaşıyorum. Bunun bir sorun olduğunu düşünmüyorum, sadece beklenen davranış. Şaşırtıcı birçok çözüm var.

not: klasörleriniz boş olduğunda izlenmez. boş dizinleri tutmak için oraya boş bir .keep dosyası koymak iyi bir uygulamadır
Dostum

Yanıtlar:


356

.gitignoreAlt dizin yoksayılırsa dosyayı kontrol edin .

Sonra tekrar dene

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

4
Bunun .gitignore içinde belirtilen dosyaları içermeyeceğini unutmayın. Genellikle elle olanlar eklemek veya böyle bir toplu dosyasını kullanmak: for /R %%f in (*.*) do git add --force %%f(bkz bitbucket.org/jeroenp/besharp.net/src/tip/Scripts/GIT/... )
Jeroen Wiert Pluimers

10
Klasörün tüm ağaç yapısını özyinelemeli olarak eklemek için komut şu olmalıdırgit add --all :/
Jason Hartley

7
@JeroenWiertPluimers git add -f -all.gitignored dosyaları eklemek için çalışır
Orwellophile

3
@JasonHartley Yorumunuz bir cevap olabilir. Teşekkürler!
ShutUpMagda

4
Bu, yalnızca geçerli klasörü değil, git repo'daki tüm etiketlenmemiş dosyaları eklemez mi? Asıl sorunun sorduğu şey bu değil.
Ted

31

Bu benim için çalıştı:

git add . --force

1
Diğer cevaplar, dosya listesinin komuta argüman olarak hesaplanmasını gerektirir, bu, daha iyi bir seçimdir.
topkara

3
Kesinlikle en iyi cevap .. Bir düzenleme yok --forcesayılır hala saygı görmesini istiyorsanız gerekmez bahsetmek olacaktır.
GrafikRobot

31

KURULUM - yerel sunucudaki yerel depo - istemci yerel sunucuya LAN üzerinden bağlanır

git add foldername/\\*

Sunucuya yapmak için ...

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

Çoğunlukla, kullanıcılar remote_server_name öğesini kaynak olarak atayacaktır ...

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

9
Olarak başarısız oldu fatal: pathspec 'foldername/\\*' did not match any files. Olarak çalıştı git add foldername/\*.
Tpojka

Arasındaki fark nedir git add foldername/\\*ve git add --all?
Danijel

17

En üst dizinden çağrılan hem "git add *" hem de "git add SocialApp" tüm dizinleri özyinelemeli olarak eklemelidir.

Muhtemelen SocialApp / SourceCode / DevTrunk / SocialApp'ta hiç dosyanız yok ve nedeni bu.

"SocialApp / SourceCode / DevTrunk / SocialApp / .temporary" e dokunmayı (ve .gitignore'u işaretlemeyi) deneyin ve sonra git add'i tekrar deneyin.


2
Sanmıyorum, git add * kullanıyorum ve aynı sorunu yaşıyorum.

16

Benim durumumda, daha önce orada bir git repo başlatmıştı çünkü alt dizinde bir .git klasörü vardı. Alt dizini eklediğimde, içerdiği dosyalardan herhangi birini eklemeden basitçe bir alt proje olarak ekledim.

Git deposunu alt dizinden kaldırarak ve klasörü yeniden ekleyerek sorunu çözdüm.


Bu benim için çözdü. Ben de düzeltmek için klasörü kendisi yeniden adlandırmak zorunda kaldı.
Totem

6

Ben sadece bunu kullandım:

git add app/src/release/*

Eklenecek klasörü belirtmeniz ve ardından *içerideki her şeyi özyinelemeli olarak eklemek için kullanmanız yeterlidir .


5

Bana biraz zaman harcayan bu problemle karşılaştım, sonra git'in boş klasörleri saklamayacağını hatırladım. Saklamak istediğiniz bir klasör ağacınız varsa, sadece git ile depolamayı etkilemek için o ağacın en derin klasörüne ".gitkeep" adlı bir dosya gibi bir dosya koyun.


5

Bir dizin ve içinde bulunan tüm dosyaları özyinelemeli olarak eklemek istiyorsanız, eklemek istediğiniz dizinin bulunduğu dizine gidin.

$ cd directory
$ git add directoryname

1
cd dizini git add *
François Richard

3

Aynı sorunu yaşadım ve .gitignore dosyam yok. Sorunum şu şekilde çözüldü. Bu, tüm alt dizinleri ve dosyaları aldı.

git add <directory>/*

1

Web hizmeti kaynak kodlarımı istemci tarafı projesiyle birlikte eklemek istediğim zamanlar var. İkisinin de ayrı bir git depoları var. Aslında komutu kullanarak tüm dosyaları eklemek için kullanılır:

git add -A

Ancak bazı nedenlerden ötürü yalnızca klasörü ekler. Daha sonra sunucu dosyalarının .gitiçinde klasör olduğunu öğrendim, böylece komut çalışmaz.

tl; dr : .gitKlasörde sahne almak istediğiniz klasör olmadığından emin olun .


1
.Git klasörlerini kaldırmak istemiyorsanız bu sorunu nasıl çözebilirsiniz?
yuvarlanıyor


1


Bir Windows makinesindeyseniz , dosyalarınızın bulunduğu klasöre gidin, komut satırı arayüzü alacağınız git bash'ı başlatmanız ve ardından bu komutları kullanmanız gerekir.

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

ana dosya ile birleştirmeden önce dosyalarda değişiklik yaparsanız, değişiklikleri yürütebilirsiniz.

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

Bu ödeme işleminden sonra ana şubeye şube


Sadece bu sözlere cevap verininit
Atul

1

Senaryo / Çözüm 1: / öğesinin dosyada olmadığından
emin olun . FolderSub-folder.gitignore


Senaryo / Çözüm 2:
Varsayılan olarak, git add .yinelemeli olarak çalışır.


Senaryo / Çözüm 3:
git add --all :/ Sorunsuz çalışıyor, nerede git add .çalışmıyor (çalışmıyor).
(@ Yasemin.aydin)


Senaryo / Çözüm 4:
Kişisel olarak karşılaştığım sorun Subfolders or Files, çoklu arasında ortak olan bir şeydi Folders.

Örneğin:
Folder/Subfolder-L1/Subfolder-L2/...file12.txt
Folder/Subfolder-L1/Subfolder-L2/Subfolder-L3/...file123.txt
Folder/Subfolder-L1/...file1.txt

Bu yüzden denedim ama bir acı Gitolduğunu eklememi tavsiye git submoduleediyordu.


Sonunda benim için işe yarayan şuydu:

1. git adda'nın son sonunda / düzeyinde olan bir dosya Folder.
Örneğin:
git add Folder/Subfolder-L1/Subfolder-L2/Subfolder-L3/...file123.txt

2. git add --all :/şimdi.
Bu edeceğiz çok hızla tüm ekleyebilir Folders, Subfoldersve files.



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.