Dropbox + Git
Öncelikle dropbox hesabınız yoksa burdan buyrun: https://www.dropbox.com/referrals/NTY3MTcxNjk
Evet, bu sayade +kota kazanıyorum.
Remote'dan projemizi çekmek için:
git init --bare ne işe yarar
Yukarıda daha sonra karışıklık çıkmaması için önerilir demiştim. Bu durumda remote repo'da sadece .git klasörü tutuluyor. Çalışma dosyalarımız yer almıyor.
--bare kullanılmazsa bu dosyalarda yer alıyor.
Ortaya çıkan karışıklık şu:
push komutu remote'un local çalışma dosyalarına dokunamadığından .git klasörü güncellenirken, çalışma dosyaları eski kalıyor.
Remote repo sahibinin çalışmasına başlamadan önce "checkout" demezse problemler yaşanabilir diye bunu engellemişler. Yani --bare olmadan push kabul etmiyor.
Evet, bu sayade +kota kazanıyorum.
- Github'da private repo.'lar paralı, gitorious'da hiç yok vs. vs.
- Kendimiz kolayca bir sunucu oluşturabiliriz. Apache gibi birşeye de ihtiyacımız yok. Ssh bağlantısı kurabilceğimiz bir pc yeterli. Ancak "asimetrik" dsl hattımızın upload hızını düşünürsek ev sunucusu pek mantıklı değil.
- USB stickde yanımızda taşısak, autorun.inf'ler malware'ler elbet bir yerde karşımıza çıkacak.
cd ~/projectXremote repo. --bare parametresi bu repo da workspace dosyalarının tutulmasını sağlıyor. Daha sonra kaşılıklık çıkmaması için önerilen bir hareket.
git init
touch readme
git add readme
git commit -m 'first commit'
cd ~/Dropboxlocal repo'ya geri dönüp remote'a değişiklikleri gönderiyoruz:
mkdir projectX.git
cd projectX.git
git init --bare
cd ~/projectXDiğer bilgisayarlarda
git remote add origin ~/Dropbox/projectX.git
git push origin master
Remote'dan projemizi çekmek için:
git clone ~/Dropbox/projectX.git
git init --bare ne işe yarar
Yukarıda daha sonra karışıklık çıkmaması için önerilir demiştim. Bu durumda remote repo'da sadece .git klasörü tutuluyor. Çalışma dosyalarımız yer almıyor.
--bare kullanılmazsa bu dosyalarda yer alıyor.
Ortaya çıkan karışıklık şu:
push komutu remote'un local çalışma dosyalarına dokunamadığından .git klasörü güncellenirken, çalışma dosyaları eski kalıyor.
Remote repo sahibinin çalışmasına başlamadan önce "checkout" demezse problemler yaşanabilir diye bunu engellemişler. Yani --bare olmadan push kabul etmiyor.
Bunu aşmanın yöntemi ise checkout edilmişin dışında bir branch push etmek, veya remote repo'da bu hatayı kapatmak. Karmaşık geldi bana, dropbox içinde ikinci bir "local" work copy tutmayı tercih ederim.By default, updating the current branch in a non-bare repository is denied, because it will make the index and work tree inconsistent with what you pushed, and will require 'git reset --hard' to match the work tree to HEAD.