Rumah  >  Artikel  >  alat pembangunan  >  Apakah maksud push -u dalam git

Apakah maksud push -u dalam git

WBOY
WBOYasal
2022-07-01 10:36:5017828semak imbas

Dalam git, "push -u" bermaksud memuat naik versi cawangan tempatan ke gabungan jauh, dan merekodkan nilai lalai tolak ke cawangan jauh apabila menambah parameter "-u", ini bermakna seterusnya masa Apabila terus menolak cawangan jauh, arahan tolak boleh disingkatkan sebagai "git push".

Apakah maksud push -u dalam git

Persekitaran pengendalian artikel ini: sistem Windows 10, Git versi 2.30.0, komputer Dell G3.

Apakah maksud push -u dalam git?

Arahan git push digunakan untuk memuat naik versi cawangan tempatan ke alat kawalan jauh dan menggabungkannya.

Secara amnya, apabila menolak gudang tempatan ke gudang jauh, arahan git push digunakan. Sebagai orang baru, saya melihat beberapa tutorial di Internet Sesetengah daripada mereka akan membawa parameter -u apabila git push, manakala sesetengahnya tidak. Tiada perbezaan dalam hasil sebenar tolakan itu. Saya hanya ingin tahu tentang apa yang dilakukan oleh parameter -u?

Setelah mencari seketika, saya menggabungkan beberapa penjelasan dan analisis semua orang dan meringkaskannya.

Analisis parameter:

Pertama sekali, untuk git push, terdapat penerangan ini:

-u

–set -upstream

Untuk setiap cawangan yang terkini atau berjaya ditolak, tambahkan rujukan huluan (penjejakan), digunakan oleh argument-less git-pull(1) dan arahan lain Untuk maklumat lanjut, lihat cawangan.< ;name>.cantumkan dalam git-config(1).

Dalam penerangan ini, anda boleh melihat bahawa parameter -u berkaitan dengan pembolehubah berikut

branch.8a11bc632ea32a57b3e3693c7987c420.merge

cawangan.753fe26187e71b715e7e772d2ce065a0.bercantum bersama cawangan.753fe26187e71b715e7e772d2ce065a0.jauhan tentukan cawangan huluan cawangan tertentu. Ia memberitahu git fetch/git pull cabang mana yang hendak digabungkan dan juga boleh menjejaskan git push.

Dan huluan merujuk kepada repositori utama yang akan diambil oleh orang lain, seperti repositori GitHub anda. Pilihan -u secara automatik menetapkan huluan untuk anda, memautkan repositori anda ke repositori pusat. Dengan cara ini, pada masa hadapan Git akan "tahu" di mana anda ingin menolak dan dari mana anda ingin menarik, jadi anda boleh menggunakan git pull atau git push tanpa parameter.

Apabila anda git pull dari cawangan tanpa menyatakan sumber jauh atau cawangan, git melihat cawangan.8a11bc632ea32a57b3e3693c7987c420.cantumkan tetapan untuk mengetahui dari mana hendak menarik. Dan arahan git push -u yang menetapkan maklumat ini untuk cawangan yang anda ingin tolak.

Ringkasnya, dengan parameter -u sebenarnya sama dengan merekodkan nilai lalai tolak ke cawangan jauh, supaya lain kali kita mahu terus menolak cawangan jauh Perintah tolak boleh disingkatkan sebagai git push.

Contoh paparan:

Satu contoh ditunjukkan di bawah untuk menggambarkan perkara ini.

andy@AndyMacBookPro:/usr/local/github/andy/php-examples$ git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> test

Ini ialah keputusan jika anda tidak menggunakan parameter -u sebelum dan kemudiannya meninggalkan parameter cawangan yang anda mahu tarik. Tarik kerana tiada trek untuk cawangan semasa Jadi ia tidak tahu dari mana anda ingin menarik, jadi ini adalah maksud parameter -u, menentukan cawangan trach.

Malah, selepas menyatakan -u, anda boleh pergi ke .git/config untuk melihat fail konfigurasi GIT Anda boleh melihat rekod "ujian" cawangan di bawah:

[branch "master"] 
 remote = origin
merge = refs/heads/master 
[branch "test"]
remote = origin
merge = refs/heads/test

Dengan cara ini, git boleh mengetahui maklumat jauh dan menggabungkan di bawah ujian semasa Jika anda tidak membawa parameter -u apabila git push, maka tidak akan ada item "ujian" cawangan dalam konfigurasi.

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

Arahan konfigurasi, ini memberitahu Git 2 perkara:

Apabila anda berada di cawangan induk, alat kawalan jauh lalai ialah asal.

Apabila digunakan pada cawangan git pullmaster (tiada jarak jauh dan cawangan ditentukan), gunakan alat kawalan jauh lalai (sumber) dan gabungkan perubahan daripada cawangan induk jauh.

Pengubahsuaian konfigurasi

Anda boleh pergi ke .git/config secara manual untuk mengubah suai kandungan fail konfigurasi GIT, atau anda boleh menggunakan baris arahan untuk menetapkan pilihan ini.

 $ git config branch.master.remote origin
 $ git config branch.master.merge refs/heads/master

Jika dikonfigurasikan menggunakan arahan, ia akan mempunyai keupayaan pembetulan ralat tertentu. Sebagai contoh, anda menaip cawangan yang tidak wujud atau anda tidak melakukan operasi tambah jauh git. Dalam git yang lebih baharu, saya harap anda menggunakan git branch --set-upstream-to=origin/master master

Malah, melaksanakan arahan git push -u origin master dengan parameter -u yang ditambahkan adalah bersamaan dengan melaksanakan

git push origin master dan

git branch --set-upstream master origin/master.

Jadi, jika anda menolak kod ke cawangan jauh dan ingin terus menolak ke cawangan jauh, anda boleh menambah parameter -u pada arahan tolak untuk memudahkan input arahan tolak berikutnya.

Pembelajaran yang disyorkan: "Tutorial Git"

Atas ialah kandungan terperinci Apakah maksud push -u dalam git. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn