Magit'in bir şubeyi nereye iteceğini sormasını nasıl önleyebilirim?


10

Çağrılırken magit-push-currentile P Pdurum tamponundan, Magit 2.1.0memba ayarlı değil ne zaman, nerede ilk kez şube zorlamaya soruyor.

Adı daha önce olduğu gibi otomatik olarak oluşturmasına nasıl izin verebilir?


2
Bilmiyorsanız, otomatik olarak oluşturulan ad tamamlama seçeneklerinden biridir. Yani, itmek ilk kez some-branch-namekarşı originuzak, muhtemelen sadece yazabilirsiniz o TAB s TABve istediğiniz adının verilmesidir.
Malabarba

Oh tamam bilmiyordum, teşekkür ederim. Sorun şu ki, aynı öneklerle başlayan çok fazla şubem var, ki bu çok kullanışlı değil, ayrıca her zaman yerel şubelerle aynı ada sahip uzak dallar koydum.
z1naOK9nu8iY5A

Yanıtlar:


8

Güncelleme: Aşağıda belirtilen "itme şubesi" şu ana kadar uygulanmıştır.Daha fazla bilgi için dallanma ile ilgili belgelere bakın .

Akış yukarı dalı bir kez ayarlamanız gerekir. Bunu yaptıktan sonra P Pbuna iter ve durum tamponu içinde unpulled ve unpushed Değişiklikler listesini alacak (herhangi bir durumu olmaması kaydıyla).

Memba şubesini ayarlamanın çeşitli yolları vardır. Sen kullanabilirsiniz --set-upstreamitme açılır pencereden anahtarı: P -u P. Ya kaynak tarafı ayarlar ve başka hiçbir şey yapmaz komutu kullanın: b u.

Ayrıca Magit, yeni bir dal oluştururken "başlangıç ​​noktası" bir dal adı olması koşuluyla otomatik olarak yukarı akış dalını ayarlar. Bu, yerel ve uzak "yukarı akışlar" için çalışır. Ancak, başlangıç ​​noktası olarak yerel bir şube seçerseniz, itmenin size yardımcı olmayacağını unutmayın. Mevcut veri havuzundan mevcut veri havuzuna geçmek açıkçası mantıklı değildir ve izin verilmez.

Dolayısıyla, "yukarı akış" dalı aslında başka bir yerel dal olduğunda, P Pyukarı akış dalı yapılandırılmamış gibi davranır ve aynı şekilde davranır P e. Hiçbir akış yukarı yapılandırılmamışsa da durum aynıdır.

Bunun nedeni Git'teki bir sınırlamadır: biri sadece bir dalı başka bir dalla ilişkilendirebilir ve sonra da bu dal “yukarı akım dalı” olarak adlandırılır. En azından bir "yukarı akış" ve bir "yayın" dalı olsaydı daha iyi olurdu. Bunu sonunda Magit'te uygulamaya niyetliyim. Bkz. Sayı 1485 .

Dolayısıyla, sadece P Pyukarı akışlı dalın "ana" değil, "başlangıç ​​/ ana" olması gerekir.


Ben her zaman sadece git pushherhangi bir argüman olmadan çalışan bir push varyantı eklemeyi düşünüyorum . Bunun ardından yalnızca Git yapılandırmasına bağlı olacaktır.


Dallandım masterve akış origin/masteryukarı ayarlamadı, yukarı akış otomatik olarak ayarlanacak şekilde dallanmalı mıyım?
z1naOK9nu8iY5A

Güncellenmiş cevaba bakınız.
tarsius

1
origin/masterSet origin/masterupstream olarak dallanma , ama ben upstream olması beklenirdi origin/branch-name.
z1naOK9nu8iY5A

İstediğiniz buysa, itme sırasında bunu yapmak en iyisidir. P -p P <... completion ...> RETBunun origin/branch-namebir tamamlama adayı olarak sunulduğunu unutmayın , bu yüzden yazmanız gerekmez.
tarsius

2
Bu özellik, her özellik için bir dal ile gitflow ve pull inceleme kodlarını kullanırken acı vericidir, çünkü genellikle yalnızca bir kez basarsınız ve her zaman yerel dal ile aynı ada sahip bir uzak dal oluşturmaktır. Farklı bir adlandırılmış şubeye gitmek, kod gözden geçirme etrafında bir son çalışması olacaktır.
Barry Kelly

3

--set-upstreamMevcut şubenin henüz yukarı doğru akışı olmadığında otomatik olarak etkinleştirilen aşağıdaki önerileri kullanıyorum :

(defun magit-push-arguments-maybe-upstream (magit-push-popup-fun &rest args)
  "Enable --set-upstream switch if there isn't a current upstream."
  (let ((magit-push-arguments
         (if (magit-get-remote) magit-push-arguments
           (cons "--set-upstream" magit-push-arguments))))
    (apply magit-push-popup-fun args)))
(advice-add 'magit-push-popup :around #'magit-push-arguments-maybe-upstream)

Ido tamamlama ile birleştiğinde, aşağıdakilerle yeni bir şube itmeye izin verir P P RET:

;; NOTE: requires ido-completing-read+
(setq magit-completing-read-function #'magit-ido-completing-read)

Bu çok havalı! Çok teşekkür ederim!
z1naOK9nu8iY5A

0

Ben sadece yeni şube oluşturmak b cve daha sonra yine de işe yaramaz gibi görünüyor tüm magit 2 şeyler ile etrafında maymun .git/configişaret origin/branchyerine dosyayı düzenlemek .

Değişiklik:

[branch "fix_something"]
  remote = .
  merge = refs/heads/master

için

[branch "fix_something"]
  remote = origin
  merge = refs/heads/fix_something

Bu işe yarıyor, oysa magit2'de hala aynı şeyi yapan bir tuş kombinasyonu bulamadım. Uzaktan kumandayı ayarlamaya çalışmak işe yaramıyor çünkü henüz başlangıçta mevcut değil.


1
Yukarı akış kullanılarak ayarlanabilir bu. Ancak bu kullanır git branch --set-upstream-tove bildiğiniz gibi Git varolmayan bir dalı yukarı akış olarak ayarlayamaz ve Magit de ikisini birden yapamaz.
tarsius

@tarsius magit 1 ihtiyacım olanı yapıyor gibiydi. Ben sadece o iş akışının bir benzerliğini geri almaya çalışıyorum.
David N. Welton
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.