Varolan boş olmayan dizini Git çalışma dizinine dönüştürme ve dosyaları uzak bir depoya gönderme


644
  1. Yeniden adlandırılamayan, taşınamayan veya silinemeyen dosyalar içeren boş olmayan bir dizine (örneğin / etc / bir şey) sahibim.

  2. Bu dizini git yerine yerleştirmek istiyorum.

  3. Bu deponun durumunu "git push" veya benzeri bir şey kullanarak uzak bir depoya (başka bir makinede) gönderebilmek istiyorum.

Bu Subversion kullanarak önemsizdir (şu anda Subversion kullanarak yapıyoruz):

svn mkdir <url> -m <msg>
cd <localdir>
svn co <url> .
svn add <files etc>
svn commit -m <msg>

Git eşdeğeri nedir?

Boş bir dizine "git clone" yapabilir ve .git dizinini taşıyabilir ve her şeyin çalışmasını sağlayabilir miyim?


5
Belki sadece anlamıyorum, ama sadece git inityerel dizinin içinde çalışamaz mısın ?
Philipp

Yani başka bir yerde bir repo var demek ve bu repo bir repo olmayan bu diğer dizinin tüm içeriğini eklemek istiyor musunuz? Yoksa bu dizinde yeni bir repo oluşturmaya mı çalışıyorsunuz?
Cascabel

Bazı cevaplar github'dan bahseder, ancak sorunun kendisi git ile ilgilidir. github git değildir ve git evreninin merkezi değildir.
vfclists

Yanıtlar:


1056

Bir git arka plan programı <url>ve boş bir depo ayarladığınız düşünüldüğünde :

cd <localdir>
git init
git add .
git commit -m 'message'
git remote add origin <url>
git push -u origin master

12
abyx'in talimatları işe yarıyor gibi görünüyor. Şimdi koşmak yapın: git config branch.master.remote originve git config branch.master.merge refs/heads/master ve ne ben uzak depo klonlanmış sanki tamamen aynı olacak ile sona erecek? yani git pullve git pusholacak sadece işe ?
HMW

34
Bu da benim için çalıştı. Önce AppNameGitHub'da bir proje oluşturmak zorunda kaldım . Tam olarak ne <url>demek olduğu belli değildi . Aynı soruyu olanlar için, GitHub.com'u basitçe kullanıyoruz, repo'mızı çalıştırmıyoruz ve daha sonra <url>5. satırda kullanılan gibi şuna benziyordu:https://github.com/CompanyName/AppName
Bart

12
GitHub'da olmayan bir havuz oluşturuyorsanız, boş uzak deposu kurmak için 'git - bare init' kullandığınızdan emin olun ve 'git init'i (yaptığım gibi) değil, push başarısız olur.
jdusbabek

3
Sadece eklemek istedim, ben yapana kadar itemedim: git pull --rebase
Artemix

6
Uzak uzaktan kük değişiklikler (.README, .gitignore vb.) İçerdiği için git reddedilirse, git pull origin master --allow-unrelated-historiesbirleştirme yapmaya çalışın .
karlisup

80

Ben böyle yaparım. Halkanın neler olduğunu anlamak için bir açıklama ekledim.

Yerel Depoyu Başlat

  • ilk önce Git'i

    git init

  • Sürüm kontrolü için tüm Dosyaları

    git ekleyin.

  • Seçtiğiniz mesajla bir taahhüt oluşturun

    git commit -m 'AddingBaseCode'

Uzak Depoyu Başlat

  • GitHub'da bir proje oluşturun ve projenizin URL'sini kopyalayın. Aşağıda gösterildiği gibi:

    resim açıklamasını buraya girin

Uzak depoyu Yerel depoya bağlama

  • Şimdi yerel deponuzu uzak GitHub repo'suna bağlamak için kopyalanan URL'yi kullanın. Git klonuyla bir havuzu klonladığınızda, otomatik olarak klonlanmış depoya geri dönük olarak orijin adı verilen bir uzak bağlantı oluşturur . Remote komutu, izlenen depo kümesini yönetmek için kullanılır.

    git uzaktan menşe ekle https://github.com/hiteshsahu/Hassium-Word.git

Senkronize

  • Şimdi yerel kodu uzak kodla birleştirmemiz gerekiyor. Bu adım önemlidir, aksi takdirde GitHub'a kod gönderemeyiz. Kodunuzu itmeden önce 'git pull' ifadesini çağırmalısınız.

    git pull origin master - allow-ilgisiz-geçmişler

Kodunuzu girin

  • Son olarak GitHub'daki tüm değişiklikleri itin

    git push -u başlangıç ​​ustası


1
Bu yazıda anlatıldığı gibi "git pull" i çalıştırdım ve bir hata aldım. Kabul edilen "git push" ile devam ettim ve Bonobo Git Server'a gittiğimde artık değişikliği görebiliyorum. GIT komutuyla ilgili net açıklamalar içeren bu gönderi için teşekkürler.
schlebe

Bunun anlamı: "ve projenizin URL'sini kopyalayın ve projenin URL'sini kopyalayın." Bu bir yazma hatası mı yoksa iki farklı URL hakkında mı konuşmaya çalışıyorsunuz, yoksa?
gwideman

Bu bir tipografi hatası, sadece ekran görüntüsünde gösterildiği gibi projenin url kopyalamak
Hitesh Sahu

2
Bu doğru cevap ve kabul edilen cevap olmalı. Kabul edilen cevapta "Senkronize Et" adımınız eksik.
Ilan

28

İşte benim çözümüm:

git init
git remote add origin PATH/TO/REPO
git fetch
git checkout -t origin/master

İyi bir çözüm kurarken uzaktan repo ile .gitignore&README.dm
Hattori Hanzo

12

Uzak deponun boş olmaması durumunda (hub.jazz.net'te IBM DevOps kullanıyorsanız bu durumda), aşağıdaki sırayı kullanmanız gerekir:

cd <localDir>
git init
git add -A .
git pull <url> master
git commit -m "message"
git remote add origin <url>
git push

30 Ocak EDIT EDIT: Lütfen aşağıdaki yorumlara bakın, doğru repoda olduğunuzdan emin olun!


Yukarıdaki komutlar mevcut tüm yapılarımı sildi :( Lütfen yukarıdaki adımları uygulamadan önce dikkatli olun
Selenium Framework

7

.Gitignore ve lisans gibi bir github deposu ne zaman boş değildir

Kullanım çekme --allow-ilişkisiz-geçmişleri ve itme --force-ile-kira

Komutları kullan

git init
git add .
git commit -m "initial commit"
git remote add origin https://github.com/...
git pull origin master --allow-unrelated-histories
git push --force-with-lease

1
Son ifadeyi daha fazla olması için değiştirmem gerekiyordugit push -u origin master --force-with-lease
cfont

2

Yararlı bulduğum bunu yapmanın en basit yolu aşağıdadır.

Bu resmi yol olmayabilir ama iyi çalışıyor.

XYZBilgisayarınızda " " adında bir projeniz olduğunu varsayalım . Şimdi github üzerinde bu projenin bir git repo yapmak ve işlevlerini kullanmak istiyorsunuz.

1. Adım : " www.github.com"

2. Adım : " README.md" dosyasıyla bir havuz oluşturun (istediğiniz gibi adlandırın)

3.Adım : Depoyu PC'nize kopyalayın.

Adım 4 : Klonlanan klasörde iki şey elde edersiniz: " .git" klasör ve " README.md" dosya. Bu ikisini " XYZ" proje klasörünüze kopyalayın .

Adım 5 : Klonlanmış repoyu silin.

6.Adım : Projenizin tüm dosya ve klasörlerini ekleyin, uygulayın ve aktarın.

Artık projenizi " XYZ" git deposu olarak kullanabilirsiniz.


0

Benzer bir sorun yaşadım. REHBERLİK YAPMAK İSTEDİĞİM DİREKTÜRDE DEĞİL yeni bir depo oluşturdum . Sonra oluşturulan dosyaları depo yapmak istediğim dizine kopyaladım. Ardından, dosyaları yeni kopyaladığım dizini kullanarak mevcut bir havuzu açın.

NOT: Çıkış deposunu açmak ve açmak için github masaüstü kullandım.


0

Depoyu varsayılan olarak oluşturduysanız readme fileveyalicense

git init
git add -A
git commit -m "initial commit"   
git remote add origin https://<git-userName>@github.com/xyz.git //Add your username so it will avoid asking username each time before you push your code
git fetch
git pull https://github.com/xyz.git <branch>
git push origin <branch> 
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.