SORU
30 Ocak 2012, PAZARTESİ


Arasındaki fark `git birleştirme` nedir ve `git --no-ff`birleştirme?

gitk log, ben kullanarak ikisi arasında bir fark nokta. Nasıl fark (git komutu veya araç ile) fark edebilirim?

CEVAP
14 ŞUBAT 2013, PERŞEMBE


Grafik bu soruya cevap

Kullanarak net açıklama ve grafiksel gösterim Here is a sitegit --no-ff birleştirme:

difference between git merge --no-ff and git merge

Bunu görene kadar, tamamen gıt ile kayboldum. Kullanarak--no-ffbiri öykü açıkça 17 ** üzerinde çalışmak için izin verir. (bu noktaları "" görüntüleme aracı) ağ Ve burada another great reference resimli. github link Bu gıt daha az tanıdık bir odak daha fazla başvuru övgü ilki güzel.


Benim gibi newbs için temel bilgiler

Eğer benim gibi, bir Git-guru my answer here açıklar taşıma silme dosyaları gıt izleme olmadan silme onlardan yerel dosya sistemi, hangi görünüyor kötü belgelenmiş ama genellikle olay. Başka bir çaylak ama durum hala benden kaçmaya yöneten getting current code.


Örnek İş Akışı

Web sitem için bir paket güncelledi ve notlarımı geri benim iş akışı görmek için gitmek zorunda kaldı; faydalı bu cevap için bir örnek eklemek düşündüm.

Git komutları benim iş akışı

git checkout -b contact-form
(do your work on "contact-form")
git status
git commit -am  "updated form in contact module"
git checkout master
git merge --no-ff contact-form
git branch -d contact-form
git push origin master

Aşağıda:gerçek kullanımı, açıklamalar da dahil olmak üzere.
Not: makasla altında çıktı; gıt oldukça ayrıntılı.

$ git status
# On branch master
# Changed but not updated:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   ecc/Desktop.php
#       modified:   ecc/Mobile.php
#       deleted:    ecc/ecc-config.php
#       modified:   ecc/readme.txt
#       modified:   ecc/test.php
#       deleted:    passthru-adapter.igs
#       deleted:    shop/mickey/index.php
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       ecc/upgrade.php
#       ecc/webgility-config.php
#       ecc/webgility-config.php.bak
#       ecc/webgility-magento.php

Dikkat edin yukarıdan 3 şey:
1) çıktı ECC paketin yükseltme, yeni dosyaların eklenmesi değişiklikleri görebilirsiniz.
2) Ayrıca dikkat edin iki dosya var (/ecc klasör değil) bu değişiklik, bağımsız sildim. ecc, cleanup farklı bir şube daha sonra bu dosyaları yansıtmak için yapacağım' silme. bu dosya silme kafa karıştırıcı yerine
3) benim iş akışını takip etmedim! Ecc tekrar çalıştırmayı denerken git unuttum.

Her şey dahil git commit -am "updated ecc package" ben normalde, ben sadece dosya eklemek istedim /ecc klasöründe yapmaz. yerine aşağıda: Bu silinen dosyaları özel olarak git add ama onlar zaten gıt takip ediliyordu çünkü, bu şube kaldırmak istiyorum tamamlama benim: bölüm değildi

$ git checkout -b ecc
$ git add ecc/*
$ git reset HEAD passthru-adapter.igs
$ git reset HEAD shop/mickey/index.php
Unstaged changes after reset:
M       passthru-adapter.igs
M       shop/mickey/index.php

$ git commit -m "Webgility ecc desktop connector files; integrates with Quickbooks"

$ git checkout master
D       passthru-adapter.igs
D       shop/mickey/index.php
Switched to branch 'master'
$ git merge --no-ff ecc
$ git branch -d ecc
Deleted branch ecc (was 98269a2).
$ git push origin master
Counting objects: 22, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (14/14), done.
Writing objects: 100% (14/14), 59.00 KiB, done.
Total 14 (delta 10), reused 0 (delta 0)
To git@github.com:me/mywebsite.git
   8a0d9ec..333eff5  master -> master



Yukarıdaki otomatikleştirme için komut dosyası

Bir gün içinde bu işlemi 10 kez kullanmış, toplu komut komutları çalıştırmak için yazmak için aldım, yukarıdaki adımları yapmak için neredeyse uygun git_update.sh <branch> <"commit message"> bir script yaptım. Bu komut için Here is the Gist source.

git commit -am yerine "" bu komut. listesi git status ile üretilen ve daha sonra bu yapıştırma değiştirilmiş dosyaları seçmek ediyorum Bu düzenlemeler onlarca yaptım ama farklı şube adları değişiklikleri grup yardım etmek istediği için geldi.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • infiniTuts

    infiniTuts

    18 Ocak 2012
  • Lamborghini

    Lamborghini

    13 Aralık 2005
  • xSammyJoe1

    xSammyJoe1

    19 Temmuz 2011