Rumah > Artikel > alat pembangunan > Apakah maksud push -u dalam git
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".
Persekitaran pengendalian artikel ini: sistem Windows 10, Git versi 2.30.0, komputer Dell G3.
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!