Bare Bones Tarayıcı
git instaweb --httpd=webrick
dan git scm kitabı
dağıtılmış geliştirme için burada açıklanan yaklaşım gibi bir şeyle birleştirin ( iyi tanımlanmış konsept için datagrok'a kredi )
Herhangi bir yerel depodan bir defalık git sunucusu başlatın.
Bunu zaten tweetledim ama biraz genişleme kullanabileceğini düşündüm:
Merkezi olmayan git iş akışını etkinleştir: git config alias.serve "daemon --verbose --export-all --base-path = .git --reuseaddr --strict-paths .git /"
Değişikliklerinizi içeri ve dışarı çektiğiniz çekirdek "resmi" bir havuzla çalışmayı içeren bir git iş akışı kullandığınızı varsayalım. Github gibi git barındırma hizmetlerinin birçok kullanıcısı gibi birçok şirketin bunu yaptığına eminim.
Diyelim ki sunucu ya da Github biraz aşağı iniyor.
Ne de olsa, git kullanmanın nedenlerinden biri endişelenmenize gerek yok, bu nedenle yerel klonunuzdaki tüm proje geçmişinin bir kopyasına sahip olmanız.
Operasyon ekibinin sunucuyu tekrar canlandırmasını beklerken kodlama ve taahhütte bulunmaya devam edebilirsiniz. Kendine not: operasyon ekibi için donut satın alın.
Peki, bu kesinti süresi boyunca, git uzmanı olmayan başka biriyle aynı havuzda işbirliği yapmak istersen ne olur?
Ya da aksama süresi yerine, siz ve ortak çalışanınız sahada bulunuyorsanız ve bir nedenden dolayı VPN'nizi resmi repolarınıza bağlanmanıza izin veremezseniz ne olur?
Ya da, siz ve işbirlikçiniz bir grup deneysel değişiklik çıkarıyorsa ve erişiminiz olsa bile, bitmemiş karışıklığınızı resmi merkezi depoya itmek istemiyorsunuz? (Özellik dalları olarak bile değil.) Belki felaket bir rebase veya birleştirme temizleme ortasında ve dalları her yerde vardır.
Git, muhtemelen bildiğiniz gibi "dağıtılmış" bir sürüm kontrol sistemidir .
İş akışınızda merkezi bir "resmi" git deposu kullanabilseniz bile, git'i eşler arası bir şekilde kullanma olanağına sahipsiniz, burada sizin ve işbirlikçiniz birbirinizi taahhüt eder ve paylaşırsınız. sunucu asla bilmek zorunda bile.
Peki, şubelerinizi ve taahhütlerinizi onlara nasıl teslim edersiniz?
- Yamaları e-posta yamaları için kullanabilirsiniz. Ancak bu biraz yetersizdir ve e-postayla gönderilen yamaların nasıl uygulanacağı konusunda biraz bilgi gerektirir.
- Kendi makinenizde ortak çalışanınızın ssh olması için bir hesap oluşturabilirsiniz. Ancak yerel kök erişiminiz olmayabilir veya kutunuza SSH erişimi ile onlara güvenmiyor olabilirsiniz.
- Reponuzu bir parmak sürücüsüne klonlayabilir ve ileri geri aktarabilirsiniz. Ancak bu, özellikle aynı yerel ağda bulunuyorsanız ve bir parmak sürücü gerektiriyorsa oldukça sıkıcıdır.
Muhtemelen başka yöntemler de düşünebilirsiniz. Ama süper kolay bir yol var: ağda birbirinizi görebiliyorsanız, değişikliklerinizi klonlamak, almak ve çekmek için uzaktan kumanda olarak kullanabilecekleri tek seferlik bir git sunucusu başlatabilirsiniz. onunla yapılır.
Bunu sağlayan araç, git daemonbirçok seçenek ve işlevselliğe sahiptir, ancak bu kolay bir kerelik "sadece içinde olduğum repoyu sunmak" için bir takma ad oluşturmaktır. Aramayı seviyorum git serve. Çalıştırmak:
git config --global alias.serve "daemon --verbose --export-all --base-path=.git --reuseaddr --strict-paths .git/"
Git diğer adları çalışma ağacınızın temel dizininde yürütüldüğünden, diğer ad kullanmak çok önemlidir. Böylece '.git' yolu, deponuzun dizin ağacında nerede olursanız olun her zaman doğru yeri gösterecektir.
Yeni git serveöğenizi şu şekilde kullanın :
- Koş
git serve. "Gürlemeye hazır," rapor edecek. Git kötü.
- IP adresinizi bulun. Diyelim ki 192.168.1.123.
- "Hey Jane, bu taahhütleri başlangıç noktasına kadar itmeye hazır değilim, ama taahhütlerimi koşarak klonuna getirebilirsin
git fetch git://192.168.1.123/"
- Bu repoya artık hizmet etmek istemiyorsanız ctrl + c tuşlarına basın.
Jane'e git clone git://192.168.1.123/ local-repo-namehenüz depodan bir klonu yoksa söyleyebilirsin . Veya git pull git://192.168.1.123/ branchnamebir özellik dalında birlikte çalışıyorsanız, bir kerede bir getirme ve birleştirme yapmak için kullanın .
Ancak, sırrınızı deponuzda saklıyorsanız bunu düşmanca ağlarda yapmamanız gerektiğini unutmayın, çünkü kimlik doğrulaması yoktur. Varlığının reklamını yapmaz, ancak bir bağlantı noktası tarayıcısı olan herkes onu bulabilir, ona bağlanabilir ve repoyu klonlayabilir.
Ancak bu çok tehlikeli değildir, çünkü varsayılan olarak salt okunurdur. git daemonYazma erişimini etkinleştirmek istediğinizi düşünüyorsanız man sayfasını dikkatle okuyun . Ortak çalışanınızın taahhütlerini almak istediğiniz durumda, onu salt okunur bırakmak ve ortak çalışanınızdan da bu komutu çalıştırmasını isteyin, böylece onlardan yararlanabilirsiniz.
Teğetsel olarak ilgili: tek seferlik sunucular konusunda, bir grup statik dosyayı geçici olarak HTTP üzerinden paylaşmak istiyorsanız: python -m SimpleHTTPServer