2016-04-05 11 views
2

Git'te geliştirmeler ve yerel geliştirme şubesi olarak uzak bir şubem var.git yalnızca bazı değiştirilmiş dosyaları ekleyin

git status 
modified file1 
modified file2 
modified file3 

şimdi ekleyebilir ve tek file1 işlemek ve (şimdi eklenecektir sonra ancak dosya2'nin ve File3) Uzak dalına itin istiyorum: Ben 3 dosya diyelim modifiyeli. Onu itmeye çalışıyorum ama git, uzaktan kumanda benim yerel bölgemden öte olduğu için itmeye izin vermiyor. Sonra git fetch ve git rebase yapmayı denedim, ancak git, izlenmeyen dosyalarım olduğunu söylüyor. Git onları saklamak için önerdi. Git için yeni ve şu ana kadar bildiğim şey, başka bir dalın değiştirilmesi durumunda çalışma değişikliklerini kaydetmek olan git stash. Benim durumumda şubemi değiştirmiyorum. git stash ile devam etmek güvenli midir? ya da başka yollar var mı? Açıklamalarınızı takdir ediyorum.

cevap

1

itme önce, değişiklikleri kaydetmek gerekir. Yerel olarak:

#add files to specific commit 
git add file1 

# commit added files 
git commit -m "init commit" 

# stash file2 file3 
git stash 

# now, when working dir is clean you can safly pull updates from remote repo 
git pull 

# push your changes (your commit) to remote repo 
git push origin master 

#return file2 file3 changes 
git stash apply 
+0

Şu anda tüm dosyaları işlemek istemediğini belirtildi. Stash burada daha iyi bir seçenek olacağını düşünüyorum ... –

+0

OP'ye cevap vermek için, sadece bir gerekli dosyayı eklemek için ekleme satırını değiştirebilirsiniz, komutların geri kalanı OP'nin istediği şeyi yapmalıdır. – CyberneticianDave

+0

ne yapmak istiyorum rabase ama benim çalışma dir temiz değil çünkü ben değiştirdim 2 dosya eklemedim, bu yüzden neden statch hakkında soruyorum ?? – Lakshi

0

Dosyaları seçici şekilde düzenleyebilirsiniz.

Git ile
git add file1 
git commit -m "first bit of changes" 
git push 

, size içinde kaydedilmesini zanaat sağlayan çok ayrıntılı bir düzeyde dosyaları da kullanabilecektir:

Örneğin

, Diyelim ki sadece file1 kullanır ve yalnızca bu itmek istediği işlemek ilk diyelim mantıklı bir yol. Sorunun diğer kısmına gelince

...

ben itiyorum ama uzaktan hed benim yerel

Evet daha Ahed çünkü git zorlamaya izin vermiyor Bu kesinlikle stash için iyi bir kullanım durumudur.

yapın:

git stash 
git pull 
git stash pop 
+1

Sıfırlama yapmak zorunda kalmadan burada yeterli olmaz mıydı? – CyberneticianDave

+0

Evet, 'çekme' neredeyse kesinlikle işe yarayacaktı. OP'nin izleme dallarının doğru bir şekilde ayarlanıp ayarlanmadığından emin değildim ... –

+0

@CyberneticianDave İleri gittim ve –