SORU
4 HAZİRAN 2010, Cuma


değiştirmeyi taahhüt olmadan git rebase zaman

Sense zaman damgaları işlemek koruyarak git rebase gerçekleştirmek için mi?

Sonuç yeni şube mutlaka tarihleri kronolojik olarak işlemek zorunda kalmazsınız olacağına inanıyorum. Olduğunuteorik olarakmümkün? (sıhhi tesisat komutları; sadece merak işte kullanarak) örneğin

Teorik olarak eğer mümkünse, o zaman pratikte rebase ile, zaman damgaları değiştirmek mümkün değildir?

Örneğin, aşağıdaki ağaç var varsayalım:

master <jun 2010>
  |
  :
  :
  :     oldbranch <feb 1984>
  :     /
oldcommit <jan 1984>

master oldbranch ben rebase şimdi, tarihi jun 2010 Şubat 1984 değişiklikleri uygulayın. Zaman damgası değişmez işlemek, böylece bu davranışları değiştirmek mümkün müdür? Sonunda böylece edinmek istiyorum:

      oldbranch <feb 1984>
      /
 master <jun 2010>
    |
    :

Bu hiç mantıklı olurdu? Hatta git içinde bir tamamlama daha yakın olan yaşlı bir ebeveyn olarak taahhüt nerede bir tarih olması mümkün mü?

CEVAP
4 HAZİRAN 2010, Cuma


Haziran 2014 güncelleme: 23* *in the comments söz edilen bir çözüm de ayrıntılı "Change timestamps while rebasing git branch" seçeneği --committer-date-is-author-date kullanarak (başlangıçta Jan. tanıtılan commit 3f01ad6 2009

--committer-date-is-author-date seçeneği yazarın damgası bırakın ve committer zaman damgası OP Olivier Verdier buydu asıl yazar, zaman damgası, aynı olacak şekilde ayarlanmış gibi görünüyor unutmayın.

Son doğru tarih ile tamamlama buldum ve yaptım:

git rebase --committer-date-is-author-date SHA

git am bkz

--committer-date-is-author-date

Varsayılan olarak, komut, e-posta iletisi olarak tamamlama yazar, tarih tarih kayıtları ve committer tarihi olarak taahhüt yaratılış zamanı kullanır.
Bu kullanıcı yazar tarih olarak aynı değeri kullanarak committer tarihi hakkında yalan sağlar.


(Orijinal cevap, Haziran 2012)

Bir dene istersenetkileşimsizrebase

git rebase --ignore-date

(bu SO answer)

Bu zikrettiği git am geçti

 --ignore-date

Varsayılan olarak, komut, e-posta iletisi olarak tamamlama yazar, tarih tarih kayıtları ve committer tarihi olarak taahhüt yaratılış zamanı kullanır.
Bu kullanıcı committer tarihi olarak aynı değeri kullanarak yazar tarihi hakkında yalan sağlar.

git rebase, Bu seçeneği "--etkileşimli seçeneği." ile Uyumsuz olduğu için

you can change at will the timestamp of old commit date (git filter-branch), tarih sırası suç ne olursa olsun/gerek bile set it to the future! istiyorsan Git geçmişinizi düzenleyebilirsiniz sanırım.


Olivier sorusunu bahseder gibiyazar tarihhiç bir rebase ile değiştirilir;
Pro Git Book:

  • Yazarın ilk çalışması, yazan kişi
  • bu committer oysa son işe başvuran kişi.

Eğer bir proje için bir yama ve üyeleri yama geçerlidir çekirdek birine gönderirseniz, ikiniz de kredi almak.

Ekstra açık olmak, Olivier yorum olarak bu durumda,:

--ignore-date elde etmek için çalıştığım şeyin tam tersini yapar!
Yani, yazarın zaman damgası siler ve tamamlar zaman damgaları ile değiştirin!
Bu yüzden soruma doğru cevap:
git rebase aslında değişim yazarların varsayılan olarak zaman damgaları. olmadığından bir şey yapma


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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bratayley

    Bratayley

    30 Aralık 2010
  • Bryan Adams

    Bryan Adams

    30 Mart 2006
  • guau . .

    guau . .

    25 Ocak 2008