2014-12-22 20 views
5

Ana git veri depomuza birkaç tek gönderiyi zorlamak istiyorum. Bazı okumaları yaptıktan sonra, bunu yapmak için işleri yeniden düzenlemek zorunda olduğum gibi geliyor, çünkü git tüm taahhütleri yalnızca belirli bir taahhütte olacak. İlk olarak, neden sadece bunun için inşa edilmediğini anlamıyorum (Ben bir git acemi). Yine de, komisyonları yeniden sipariş etmem gerekiyor ve TortoiseGit kullanıyorum. Rebase menüsüne nasıl ulaşacağımı buldum, ancak hangi seçenekleri seçeceğimi bilmiyorum. Rebase menüsüne I ulaşmak için:TortoiseGit ile Komutları Yeniden Düzenleme (rebase)

  1. Sağ dizinde tıkladım ve TortoiseGit/Göster günlüğüne Gözatılacak
  2. seçti ve ben yeniden sıralamak istedim işlemek seçilmiş.
  3. "Rebase" master "öğesini bunun üzerine" seçti.

Bir iletişim kutusuyla sunuyorum ancak alanların hiçbirinin ne anlama geldiğini bilmiyorum.

İlk olarak, şube alanı var, ana ve birkaç uzaktan kumanda seçenekleri görüyorum. Benim şubem yok. Bir depoyu klonladım ve şu ana kadar yerel klondan çalışıyordum, neden bir dal seçeneği var?

İkincisi, birbirinin üstünde sol ve sağ oklarla küçük bir düğme var. Bu düğme ne için?

Üçüncüsü, bir üst akış alanı var, varsayılan olarak deponun SHA'sı seçili. Sahaya tıkladığımda FETCH_HEAD, master ve birkaç uzaktan kumanda seçeneklerini görüyorum.

İşlemlerin bir listesini görmeyi bekliyorum ve işlemimi yukarı ve aşağı taşıyabiliyorum. Kuvvet Rebase seçeneğini işaretleyerek bir taahhütlerin listesini görebiliyorum. Yapmam gereken şey bu mu? Yine de ne zorluyorum, sadece düz bir eski rebase yapmak istediğimi düşündüm?

Yine, ben bir yeni kullanıcıyım, herhangi bir yardım takdir edilir.

cevap

1

Bu, geçici bir çözümdür. İşte buldum budur: FETCH_HEAD ait Definition of "downstream" and "upstream"

Tanımı: Üst ve alt pazar

tanımı ara Google "git de FETCH_HEAD ne".

Ben TortoiseGit ile git komut satırı araçlarını kullanabilir miyim ?: Can I use command-line Git tools and TortoiseGit simultaneously?

git ile kaydedilmesini yeniden düzenlemek için: http://blog.dennisrobinson.name/reorder-commits-with-git/

o kullanmayı önerir Bu blog yazısı:

git rebase -i HEAD~3 

kullandım yerine

git rebase -i <SHA_of_oldest_commit> 

. Bu, size kafasından SHA_of_oldest_commit öğesinin bir listesini sağlayacaktır. İşlemleri yeniden düzenlemek için istediğim gibi satırları yeniden sıraladım ve dosyayı kaydettim ve kapattım.

7

Doğru yoldasınız. Zorunlu Rebase kullanmak için ihtiyacınız olan seçenek. Kuvvet Rebase seçeneğini kullanarak kararları gördükten sonra, bir taahhüt seçin ve işlemlerinizi yeniden sipariş etmek için Yukarı/Aşağı düğmelerini kullanın. İstediğiniz şekilde sipariş verdikten sonra Yeniden başlatmayı başlat düğmesine basın.

Neden Yeniden Başlatma'yı seçmeniz gerektiğine dair; Rebase genellikle mevcut şubenizi daha yeni bir taahhüt altına almak istediğinizde yapılır. Mevcut şubeniz zaten seçtiğiniz taahhütlere bağlı olduğundan, yeniden inşa edilecek hiçbir şey yoktur. Sizin durumunuzda, sadece tadilat yerine taahhütlerinizi yeniden sıralamaya çalışıyorsunuz. Bunun için rebase kullanmakta yanlış bir şey yoktur. Sadece Güç Rebase'i açıkça seçmemiz gerekiyor.

+0

Kuvvet Rebase'in git rebase'in kullanması için bir kuvvet bayrağı sağladığını farz ediyorum. Neden rebase'ı Tortoise ile zorlamam gerekiyor ama git komut satırı ile değil? – Samuel

İlgili konular