Memba şubesini yerel bir şubeyi magit'e itecek şekilde nasıl ayarlarım?


11

Hatırladığım kadarıyla, eğer bir dal üzerinde çalışıyorsam, örneğin, menüden my-feature-branchbunu yapabilirdim ve sonra üstteki listeden uzak dalı seçebilirdim . Bu güzel çalıştı.magit-statusP Porigin/my-feature-branch

Son zamanlarda, bu tartışmadan itibaren , benzer bir şey yapabilirim P -u e( bayrağı açmak magit-push-popup, --set-upstreambayrağı ayarlamak ve ebaşka bir yerde kullanmak ) origin/my-feature-branch. Bu benim için de işe yaradı. Ancak daha yakın zamanda, bu artık işe yaramıyor ve yukarı yönlü bir dal oluşturmanın en iyi yolunu bulamadım.

Bir P edalın itmesi için ilk seçeneği kullandığımda origin/my-feature-branch, neredeyse her zaman istediğim şey budur. Ancak, origin/my-feature-branchyerel şubem için yukarı akış olarak ayarlanmamış . Kullanmak P u, yukarı akış dalını seçmeme izin veriyor, ancak origin/my-feature-branchlistede yok ve origin/my-feature-branchsekme tamamlanmadan yazmam gerekiyor (bunun zor olmadığını biliyorum, ancak kullanıcı hatasına eğilimli ve komut satırından daha yavaş).

Şu anda bir yukarı akış dalı kurmanın tek yolu mu yoksa bir şey mi eksik? Konuyla ilgili diğer tartışmalara ve belgelere baktım, ancak bulduğum tüm kaynaklar güncel değil.


1
<remote>/<branch>Bölüm yanlışlıkla istem dışı bırakıldı düşünüyorum ( bu yoruma bakın ). Bu arada, magit-push-current-set-remote-if-missingnil olarak ayarlayabilirsiniz .
Kyle Meyer

Bunu düzelttim. Aşağıdaki cevabım bu düzeltmeyi varsayar.
tarsius

İlgili diğer bazı sorunlar bulundu ve düzeltildi. Muhtemelen aşağıdaki her şey% 100 doğru olmadan Melpa'nın yetişmesi için birkaç saat beklemeniz gerekecektir.
tarsius

Yanıtlar:


11

İtme sırasında veya aynı anda itmeden yukarı akış ayarlamanın birkaç yolu vardır.

magit-push-current-set-remote-if-missingDeğeri nil(varsayılan) değilse , şöyle bir şey görürsünüz:

Push feature to
 p pushRemote, after setting that
 u @{upstream}, after setting that
 e elsewhere

Bunu origin/featureyukarı akışa itmek ve ayarlamak için tuşuna basın uve ardından RETvarsayılan tamamlama adayını kabul etmek için düğmesine basın .

Öyleyse magit-push-current-set-remote-if-missing, nilbunun yerine şunu görürsünüz:

Push feature to
 e elsewhere

pŞimdi tuşuna bastıysanız, yukarı akışın yapılandırılmadığı söylenir (yukarı akış yoksa yukarı akışa itemeyeceğiniz anlamına gelir).

Ancak öyleyse magit-push-current-set-remote-if-missing, nilanahtarların listesi özellikli olacaktır --set-upstream, böylece P - u palıştığınız gibi kullanabilirsiniz (ikinci p küçük harf hariç). Yine de bir sorun var: Değerini değiştirdikten sonra magit-push-current-set-remote-if-missingEmacs'ı yeniden başlatmak --set-upstreamveya kaybolmak için yeniden başlatmanız gerekiyor.

Son olarak kullanarak ust baş set "kümesi kaynak tarafı (ve başka bir şey yapmak)" komutunu edebilirsiniz: b uorigin/masterRET. Bu yaklaşımı kullandığınızda, yalnızca zaten var olan bir dalı seçebileceğinizi unutmayın.


Ancak uzaktan kumandayı yapılandırmak ve buna itmek daha iyi olur. Push-remote ve yukarı akıştan nasıl farklı olduğu hakkında daha fazla bilgi için bilgi kılavuzundaki Dallanma düğümüne bakın (web sürümü henüz güncellenmemiştir).

Temel olarak yukarı akış dalı, büyük olasılıkla özellik dalınızın sonunda birleştirileceği daldır (iterek değil birleştirerek veya yeniden temel alarak) origin/master. Ve uzaktan kumanda, özellik dallarınızı üzerinde çalışırken başkalarının da birleştirebileceği yerdedir. Yerel dal adlandırılmışsa featureve uzaktan kumanda kullanılıyorsa my-fork, o dalı kullanarak P pbastırmak için öğesine itilir my-fork/feature. ("Push-to-branch" yapılandırılamaz, push-remote üzerindeki dalın adı her zaman yerel adla aynıdır.)

Dolayısıyla, sorunuz "yukarı doğru aynı anda yapılandırırken yukarı doğru nasıl itebilirim" gibi bir şey olsa da, benim tavsiyem yukarı doğru doğru itmemek, bunun yerine basmalı uzaktan kumandayı zorlamaktır.

Değeri değiştirmediyseniz, magit-push-current-set-remote-if-missinguzaktan kumandayı kullanarak yapılandırabilirsiniz P psome-remoteRET. Ancak, muhtemelen tüm özellik dallarını aynı uzaktan kumandaya ittiğiniz için, uzaktan kumandayı tüm dallar için bir kez ayarlamak ve onunla yapılması daha iyidir: bve sonra M-psağ uzaktan kumanda seçilene kadar.


Ayrıca, yukarı akış kolunu açıkça ayarlamak gerekmediğini de unutmayın. Yeni bir dal oluşturduğunuzda ve başlangıç ​​noktası olarak bir uzak dal seçtiğinizde, bu yukarı akış olarak kullanılır.

Maalesef başlangıç ​​noktası genellikle yerel bir daldır ve bu durumda Git varsayılan olarak yukarı akış olarak kullanmaz. Ancak bu bir kez çalıştırılarak kolayca düzeltilebilir:

git config --global branch.autoSetupMerge always

Varsayılan değer, true" uzak bir dal olması koşuluyla başlangıç ​​noktasını yukarı akış olarak ayarla" anlamına gelir .


Bu arada, aynı şey uzaktan kumanda için de geçerlidir. Bu da genellikle "yeni" depolarda yarı otomatik olarak ayarlanmalıdır. Bir havuzu klonlarsanız, originpush-remote olarak kullanmak isteyip istemediğiniz sorulacaktır . Başka bir uzaktan kumanda ekleyeceğiniz sürece, " my-forkpush" olarak kullanılacaksa "evet" yanıtı vermelisiniz . Kullanarak yeni bir uzaktan kumanda eklediğinizde M ave remote.pushDefaulthenüz ayarlanmadıysa, yeni eklenen uzaktan kumandayı push-remote olarak kullanmak isteyip istemediğiniz sorulacaktır.

Bu, magit-clone-set-remote.pushDefaultve kullanılarak yapılandırılabilir magit-remote-add-set-remote.pushDefault.

Başka bir gelişmiş seçenek, magit-branch-prefer-remote-upstreamvarsayılan değerdir nil. Eğer bunu ayarlarsanız t, ve sonra yeni bir şube için başlangıç noktası olarak, bir yerel şube seçip başlangıç noktası upstream kudretini memba olarak kullanılabilir (bazı kurallara göre, doktor-string bakınız) yerine başlangıç ​​noktasının kendisi.

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.