GitHub'daki komut satırından çekme istekleri gönderebilir misiniz?


298

Bir çekme isteği başlatmak için github.com ile etkileşime girmeniz gerekiyor gibi görünüyor. Öyle mi?


2
API'larında çekme istekleri için hiçbir şey göremiyorum: develop.github.com
Adam Vandenberg


1
Bunu hangi işletim sisteminde yapmak istiyorsun?
IgorGanapolsky

Windows 8 veya 10'da nasıl yapılır?
Mathivanan KP

Eğer ilgilenen varsa bunun için bir bash betiği hazırladım.
mvr

Yanıtlar:


114

GÜNCELLEME : Hub komutu artık resmi bir github projesi ve ayrıca çekme istekleri oluşturmayı destekliyor

ORİJİNAL :

Hub komutuna eklemek için özellikle yararlı bir şey gibi görünüyor: http://github.com/defunkt/hub veya github gem: http://github.com/defunkt/github-gem

Bunu isteyen projelerle bir sorun bildirmenizi öneririm. Github adamları oldukça duyarlı.


8
Github-mücevher yaş için çekme isteklerini oluşturmak için bir tesis dahil: gh pull-request [user] [branch].
Holger Sadece

6
Github ilk önce repoyu çatallamaksızın, yani kaynak deposunun doğrudan klonundan mı işlemektedir?
Hari Karam Singh

1
@Holger Sadece ve herkes: Bu sadece bir çekme isteğinin metnini oluşturur ve bir Github çatalına olan ihtiyacı atlamaz. Henüz bunun için bir yol bulamadım. Aşağıda yakında yayınlanan 'pullr' yardımcı programını denemek niyetindeyim. Github-gem'den tam çekme isteği desteği isteyen insanlar sorunu için buraya bakın .
mateor

1
hızlı komut kullanarak hub:hub pull-request -m "message pull request" -b master -h your_branch
Gujarat Santana

Yukarıdaki belgelerde neden bahsedilmediğini bilmiyorum, ancak hızlı çekme isteği birleştirme için ana hub merge https://github.com/repo/pull/1
dalınızı yapın

53

Git artık bir alt komutla geliyor 'git request-pull' [-p] <start> <url> [<end>]

Dokümanları burada görebilirsiniz

Bunu yararlı bulabilirsiniz , ancak GitHub'ın özelliği ile tam olarak aynı değildir .


7
@NathanBasanese Çekme isteğini açıklayan okunabilir bir metin oluşturur. Git dokümanlar ve GitHub bu proje bakımcıya, paylaşılan repo yazma ayrıcalığı birisi (muhtemelen GitHub'dan) e-postaya kitap diyelim. Bakımcı, gönderdiğiniz çekme isteği metnini inceler (github'un çevrimiçi çekme isteği işlemini kullanmak yerine). git pullDeğişikliklerinizi yerel klonlarına birleştirmek ve bu değişiklikleri github'a itmek için çekme isteğinizde belirtilen url ve şubeyi yapabilirler .
ocaklar

30

İle Hub komut satırı sarıcı sen git için bağlayabilirsiniz ve daha sonra yapabileceğiniz git pull-request

Merkezin man sayfasından:

   git pull-request [-f] [TITLE|-i ISSUE|ISSUE-URL] [-b BASE] [-h HEAD]
          Opens a pull request on GitHub for the project that the "origin" remote points to. The default head of the pull request is the current branch. Both base and head of the pull request can be explicitly given in one  of  the  following  formats:  "branch",  "owner:branch",
          "owner/repo:branch". This command will abort operation if it detects that the current topic branch has local commits that are not yet pushed to its upstream branch on the remote. To skip this check, use -f.

          If TITLE is omitted, a text editor will open in which title and body of the pull request can be entered in the same manner as git commit message.

          If instead of normal TITLE an issue number is given with -i, the pull request will be attached to an existing GitHub issue. Alternatively, instead of title you can paste a full URL to an issue on GitHub.

2
Hub'ı bilmiyordum, homebrew aracılığıyla mevcut: brew install hubBu mac kullanıcıları için doğru cevap gibi görünüyor.
wfbarksdale

1
//, Hub hakkında daha fazla bilgi için insanları işaret edebileceğim çevrimiçi bir yer var mı?
Nathan Basanese

19

Adam araması ...

man git | grep pull | grep request

verir

git request-pull <start> <url> [<end>]

Ancak, ismine rağmen, istediğiniz şey değil. Dokümanlara göre:

Akış yukarı projenizden değişiklikleri ağaçlarına çekmesini isteyen bir istek oluşturun. Standart çıktıya yazdırılan istek, dal tanımıyla başlar, değişiklikleri özetler ve nereden çekilebileceğini gösterir.

Sadece istediğini yapan github geminden bahsetti:

sudo gem install gh 
gh pull-request [user] [branch]

Diğerleri hubgithub tarafından resmi paketten bahsetti :

sudo apt-get install hub

veya

brew install hub 

sonra

hub pull-request [-focp] [-b <BASE>] [-h <HEAD>]

3
Bu, bekleyen değişikliklerin bir özetini oluşturur, Github
Flov

1
@Flov "Bu" derken, git request-pullçizgiyi kastettiğini varsayıyorum . Evet, bu mantıklı, ama git github gibi çekme isteklerini e-posta ile göndermek için bir komut yok şaşırdım. Sonuçta, onun git config user.emailiçin kullanılabilir. Özellikle adlı bir komutla pull-request.
Ocaklar

2
Ubuntu için, Precise'dan github-clisonra artık mevcut değil gibi görünüyor ... Alternatif sormak için bir soru açtım .
IsaacS

7

Sonunda kendiminkini yaptım, etrafındaki diğer çözümlerin daha iyi çalıştığını gördüm.

https://npmjs.org/package/pullr


6
Klonlanmış deponun içinde pullr -n yapmayı denedim. Bana Windows 7'de ... / clonedRepo / undefined / .pullr-token-cache açarken bir hata verdi. Örnek bir kullanım gibi daha fazla dokümantasyon isteyebilirsiniz?
BT

5

Son zamanlarda tam olarak ne istediğinizi yapan bir araç oluşturdum:

https://github.com/jd/git-pull-request

Repoyu çatallamak, PR vb. İtmek gibi her şeyi tek bir komutta otomatik hale getirir. Ayrıca PR'yi düzenlemek / düzeltmek gerekirse güncellemeyi de destekler!


5

Çekme isteği oluşturmak için basit takma ad kullanıyorum,

alias pr='open -n -a "Google Chrome" --args "https://github.com/user/repo/compare/pre-master...nawarkhede:$(git_current_branch)\?expand\=1"'

2

Buna ek olarak github/hub, Git için bir proxy görevi görür , şimdi (Şubat 2020) cli/cli:

Bkz. " Komut satırı deneyiminizi güçlendirin: GitHub CLI artık beta sürümünde "

Bir çekme isteği oluşturma

Bir şube oluşturun, sorunda açıklanan hatayı düzeltmek için birkaç taahhütte bulunun ve katkınızı paylaşmak için bir çekme isteği oluşturmak için gh komutunu kullanın.

cli / cli pr oluşturma - https://i1.wp.com/user-images.githubusercontent.com/10404068/74261506-35df4080-4cb0-11ea-9285-c41583009e6c.png?ssl=1

Çekme istekleri oluşturmak için GitHub CLI'yi kullanarak, henüz yokken otomatik olarak bir çatal oluşturur ve dalınızı iter ve değişikliğinizin birleştirilmesi için çekme isteğinizi oluşturur.


Ve Nisan 2020'de: " GitHub CLI artık otomatik doldurma çekme isteklerini ve özel yapılandırmayı destekliyor "

GitHub CLI 0.7, beta kullanıcılarımızın sağladığı geri bildirimlerden en çok talep edilen geliştirmelerden birkaçı.
Son küçük sürüm olan 0.6'dan bu yana üç ana özellik var:

  • ghTercih ettiğiniz düzenleyiciyi ile kullanmak için yapılandırın gh config set editor [editor].
  • İle ghvarsayılan olarak SSH olarak yapılandırın gh config set git_protocol ssh.
    Varsayılan Git protokolü HTTPS'dir.
  • Taahhütlerinizden bir çekme isteğinin başlığını ve gövdesini otomatik olarak doldurun gh pr create --fill.

Yani:

gh pr create --fill

1

Bu aracı daha önce kullandım - ilk önce açık bir sorun olması gerekiyor gibi görünse de, süper yararlıdır ve github sorun izlemeyi kullanırsanız iş akışını gerçekten kolaylaştırır. git open-pull ve ardından hangi dalda olursanız olun ya da seçin bir çekme isteği gönderilir. https://github.com/jehiah/git-open-pull

EDIT: Anında sorunlar oluşturabilirsiniz gibi görünüyor, bu nedenle bu araç iyi bir çözümdür.

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.