2010-01-16 21 views
5

Yeni'ye gitmek için bu basit bir yanıtla basit bir sorudur.Bir çatallı git deposuyla çalışma dışında, özel repo URL'sini değil, genel repo URL'sini klonlamam dışında,

GitHub'da bir deposu çatallıyorum. Daha sonra özel repo URL'sine karşılık olarak, [email protected]:samuelclay/django-mingus.git genel repo URL'sini kullanarak yerel makinemde klonladım: git://github.com/samuelclay/django-mingus.git.

Ben, kod bazı değişiklikler yapılmış, bu değişiklikleri işlediği ve benim çatal repo için yaptığım değişiklikler kadar itmek için, ben yayınladı: git remote add upstream git://github.com/samuelclay/django-mingus.git ve sonra git push upstream, ama bu (bana bir hata vermez iken “Her şey güncel” diyor, kesinlikle değişiklikimi GitHub'a kadar zorlamıyor.

Özel repo URL'sini değiştirmenin bir yolu var mı? Bu gerekli mi?

cevap

8

Bunu .git/config dosyasını düzenleyerek kolayca yapabiliyordum.

 
$git clone git://github.com/user/test.git # Clone from read only 
# Make changes 
$ git push 
fatal: remote error: 
    You can't push to git://github.com/user/test.git 
    Use [email protected]:user/test.git 

Yani bu proje için .git/config düzenlenmiş arşivde en url değişti:

 
[remote "origin"] 
    fetch = +refs/heads/*:refs/remotes/origin/* 
    # Remove this line: 
    #url = git://github.com/user/test.git 
    # Add this line: 
    url = [email protected]:user/test.git 
[branch "master"] 
    remote = origin 
    merge = refs/heads/master 
 
$ git push 
Counting objects: 5, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (3/3), done. 
Writing objects: 100% (3/3), 298 bytes, done. 
Total 3 (delta 2), reused 0 (delta 0) 
To [email protected]:user/test.git 
    58986b8..c8bd8c2 master -> master 

Başarı!

3

Genel ve özel URL'leri geri aldınız. git:// URL, genel olanıdır; [email protected] URL özel olanıdır.

Bir repo URL'sini değiştirmek isterseniz, bir metin düzenleyicide .git/config dosyanızı açın, sorunlu URL'yi bulun ve diğerine değiştirin. Yapılandırma dosyasının biçimi hakkında daha fazla bilgi için git config belgelerine bakın.