2013-10-24 22 views
11

Üzgünüm (Ben CVS ve SVN gibi eski kaynak kontrol sistemleri ile çok tanıdık olsa da), bengit clone izlenmeyen dosyaları gösterir

Benim nihai hedefi bir eklemektir ... bir git acemi olduğum Bu uzak depoyu yerel olarak klonlayarak uzak bir depoya (biri makinemde değil) dosya, dosyayı yerel depoya ekleyerek, değişikliğimi taahhüt ederek ve ardından yerel depolarımı uzaktan kumandaya geri göndererek.

bu çalıştı:

git clone ssh://[email protected]/Users/GitRepo/Project.git 
<create file locally> 
git add <localfile> 
git commit -m "Narg" 
git push 

Ama sadece "Her şey güncel" diyor.

Bu yüzden adım adım ilerlemeyi denedim ve daha da karıştı.

git clone ssh://[email protected]/Users/GitRepo/Project.git 
git status 

Ve bana gerçekten garip görünüyor

# Not currently on any branch 
# Untracked files: 
    followed by a long list of Untracked files. 

, ben depo klonlanmış sadece eğer neden dosyalar izlenmeyen olacağını söyler?

Önemli ise, uzak depo svn2git ile oluşturulan yepyeni bir üründür.

Bunun beni

* remote origin 
    Fetch URL: ssh://[email protected]/Users/GitRepo/Project.git 
    Push URL: ssh://[email protected]/Users/GitRepo/Project.git 
HEAD branch: master 
Remote branch: 
    master tracked 
Local branch configured for 'git pull': 
    master merges with remote master 
Local ref configured for 'git push': 
    master pushed to master (up to date) 

söyler ve ben

git branch -a 

yazarsanız bana

* (no branch) 
master 
remotes/GitRepo/master 
remotes/origin/HEAD -> origin/master 
remotes/origin/master 
söyler

git remote show origin 

yazarsanızBen sadece kafam karıştı ve her şey doğru çalışıyor? Yoksa git komutlarını yanlış mı yapıyorum? Ya da depoyu yanlış bir şekilde oluşturdum, böylece git komutları düzgün çalışmayacak mı?

sayesinde Chris

+2

git clone ssh 'Sonra: kullanıcı @ sunucu/Kullanıcılar/GitRepo/Project.git', önce komut' cd Project.git' çalıştırmak 'git status' – Litmus

+0

Umut' git ödeme 'yardımcı olacaktır // sen – tijs

+0

Git klonundan sonra, Project.git adında bir dizim yok - yalnızca benim gerçek dosyalarımı içeren Project adlı bir dizin. Yani çıplak olmayan bir depo alıyorum (değil mi?). Ben "cd .git" ama "git durumu" çalıştıran oradan bana "ölümcül: Bu işlem bir çalışma ağacında çalıştırılmalıdır" –

cevap

1

Git harika bir araçtır, ancak bu hareketin kaydedilmesini forrest neresinde iyi bir harita olmadan kaybolmak çok kolay.

İşte (I "gr" "grafiğinde" için diyoruz, ama aynı zamanda isterseniz "harita" diyebiliriz) bu harita almak için:

git config --global alias.gr 'log --graph --full-history --all --color --decorate' 

için bir kerelik düzmece O budala. kaybolduysan Şimdi ne zaman, sadece haritasına göz atın:

git gr 

Geçerli konum kelime "HEAD" ile gösterilir ve herhangi bir şube isimleri de listelenmiştir.

Şu anda herhangi bir dalda olmadığınızı göreceksiniz, ki bu da gerçekte olduğundan çok daha kötü geliyor - aslında büyük bir anlaşma değil, sadece taahhütleriniz ana dalda olmaz. Onları istiyorsun.

Dolayısıyla, sadece ana şubeniz geri almak ve orada işlemek:

git checkout master 
git add yourfile.txt 
git commit -m'Narg' 
git push 

Ayrıca şimdi git gr bakmak ve aynı ustası olarak taahhüt o BAŞ olduğunu göreceksiniz ve usta olan Kökeni/efendi ile aynı işi yaparsınız, bu da sizin belirlediğiniz anlamına gelir.

+0

Teşekkürler! Ne yazık ki, git yenibih hâlâ sorunlara yol açıyor ... git grafiği en üstteki revizyonu gösterir (HEAD, origin/master, origin/HEAD, GitRepo/master, master) herhangi bir dalda? –

+0

Ve, yerel depomun kök klasöründen "git checkout master" diyorum, ya "ölümcül: '/Users/blah/blah/.git/index.lock' oluşturulamıyor" diyor: Aygıtta hiç boşluk kalmadı "veya" önemli: yeni dizin dosyası yazamıyor " –

+0

" Cihazda hiç boşluk kalmadı ", sabit diskiniz dolu gibi görünüyor? Eğer df -h yazarsanız ne yazıyor? Diğer soru için, git gr aslında hangi dalda olduğunuzu size söylemeyecek, sadece şu anda ne teslim ettiğinizi ve hangi şubelerin ne işe koyduğunu göstermeyi taahhüt etmeyecektir (bir dal aslında bir işaretçiden başka bir şey değildir). Şu anki şubeniz için doğru komutunuz vardı: git branch -a. – Magnus

5

git config -l

akım git depo en core.precomposeunicode=true

bu deneyin,

git config core.precomposeunicode false

ve bu yüzden. from here

core.precomposeunicode Bu seçenek sadece Git Mac OS uygulaması tarafından kullanılır. Core.precomposeunicode = true olduğunda, Git Mac OS tarafından yapılan dosya adlarının çözülmediğini çözer. Bu, Mac OS ile Linux veya Windows arasında bir depo paylaşırken kullanışlıdır. (Windows 1.7.10 ya da daha yüksek bir sürüme ihtiyacın var, ya da cygwin 1.7 altında Git). Yanlış olduğunda, dosya adları Git'in eski sürümleri ile geriye dönük olarak uyumlu olan Git tarafından tamamen şeffaf olarak işlenir.

İlgili konular