Ketika saya menjalankan:
git push origin branchname
Apa sebenarnya itu origin
dan mengapa saya harus mengetiknya sebelum nama cabang?
Ketika saya menjalankan:
git push origin branchname
Apa sebenarnya itu origin
dan mengapa saya harus mengetiknya sebelum nama cabang?
Jawaban:
origin
adalah alias di sistem Anda untuk repositori jarak jauh tertentu. Ini sebenarnya bukan properti dari repositori itu.
Dengan melakukan
git push origin branchname
Anda mengatakan untuk mendorong ke origin
repositori. Tidak ada persyaratan untuk menamai repositori jarak jauh origin
: sebenarnya repositori yang sama dapat memiliki alias berbeda untuk pengembang lain.
Remote hanyalah sebuah alias yang menyimpan URL repositori. Anda dapat melihat URL apa yang menjadi milik setiap remote dengan menggunakan
git remote -v
Dalam push
perintah, Anda dapat menggunakan remote atau Anda dapat menggunakan URL secara langsung. Contoh yang menggunakan URL:
git push git@github.com:git/git.git master
git push
Anda dapat melihat bahwa itu terlebih dahulu memeriksa konfigurasi untuk repositori itu (yang dapat Anda periksa dengan git config --list
) untuk kunci yang disebut branch.<branchname>.remote
. Jika itu tidak disetel, "defaultnya ke asal" - git-scm.com/docs/git-push
origin
adalah tidak nama repositori jauh. Ini lebih merupakan alias lokal yang ditetapkan sebagai kunci menggantikan URL repositori jarak jauh.
Ini menghindari pengguna harus mengetikkan seluruh URL jarak jauh ketika diminta mendorong.
Nama ini ditetapkan secara default dan untuk konvensi oleh Git saat melakukan kloning dari jarak jauh untuk pertama kalinya.
Nama alias ini bukan kode keras dan dapat diubah menggunakan command prompt berikut:
git remote rename origin mynewalias
Lihatlah http://git-scm.com/docs/git-remote untuk klarifikasi lebih lanjut.
Git memiliki konsep "remote", yang hanya URL ke salinan lain dari repositori Anda. Ketika Anda mengkloning repositori lain, Git secara otomatis membuat remote bernama "asal" dan menunjuk ke sana.
Anda dapat melihat informasi lebih lanjut tentang remote dengan mengetik git remote show origin
.
git remote show origin
, mengapa tidak sederhana git show origin
? Pasti ada alasan, apa itu? Terima kasih.
origin
adalah alias default ke URL repositori jarak jauh Anda.
Sederhana! "origin" adalah apa yang Anda juluki repositori jarak jauh Anda ketika Anda menjalankan perintah seperti ini:
git remote add origin git@github.com:USERNAME/REPOSITORY-NAME.git
Sejak saat itu Git tahu bahwa "asal" menunjuk ke repositori tertentu (dalam hal ini repositori GitHub). Anda bisa menamainya "github" atau "repo" atau apa pun yang Anda inginkan.
Saya juga bingung dengan ini, dan di bawah ini adalah apa yang saya pelajari.
Saat Anda mengkloning repositori, misalnya dari GitHub:
origin
adalah alias untuk URL tempat Anda mengkloning repositori. Perhatikan bahwa Anda dapat mengubah alias ini.
Ada satu master
cabang di repositori jarak jauh (alias oleh origin
). Ada juga master
cabang lain yang dibuat secara lokal.
Informasi lebih lanjut dapat ditemukan dari pertanyaan SO ini: Percabangan Git: master vs origin / master vs remote / origin / master
Ketika Anda mengkloning repositori git clone
, itu secara otomatis membuat koneksi jarak jauh yang disebut origin
menunjuk kembali ke repositori yang dikloning. Ini berguna untuk pengembang yang membuat salinan lokal dari repositori pusat karena menyediakan cara mudah untuk menarik perubahan ke atas atau mempublikasikan komit lokal. Perilaku ini juga mengapa sebagian besar proyek berbasis Git menyebut asal repositori pusatnya.
Jawaban terbaik di sini:
https://www.git-tower.com/learn/git/glossary/origin
Di Git, "origin" adalah nama singkatan untuk repositori jarak jauh tempat proyek awalnya dikloning. Lebih tepatnya, ini digunakan alih-alih URL repositori asli - dan dengan demikian membuat referensi lebih mudah.
Dari https://www.git-tower.com/learn/git/glossary/origin :
Di Git, "origin" adalah nama singkatan untuk repositori jarak jauh tempat proyek awalnya dikloning. Lebih tepatnya, ini digunakan alih-alih URL repositori asli - dan dengan demikian membuat referensi lebih mudah.
Perhatikan bahwa asal tidak berarti nama "ajaib", tetapi hanya konvensi standar. Meskipun masuk akal untuk membiarkan konvensi ini tidak tersentuh, Anda dapat dengan mudah mengganti namanya tanpa kehilangan fungsionalitas apa pun.
Dalam contoh berikut, parameter URL ke perintah "clone" menjadi "origin" untuk repositori lokal yang dikloning:
git clone https://github.com/gittower/git-crash-course.git
Jawaban lain mengatakan itu origin
adalah alias untuk URL repositori jarak jauh yang tidak sepenuhnya akurat. Perlu dicatat bahwa alamat yang dimulai dengan http
URL sedangkan alamat yang dimulai git@
adalah URI atau Pengidentifikasi Sumber Daya Universal.
Semua URL adalah URI, tetapi tidak semua URI adalah URL.
Singkatnya, ketika Anda mengetik git remote add origin <URI>
Anda memberi tahu git lokal Anda bahwa setiap kali Anda menggunakan kata origin
Anda sebenarnya berarti URI yang Anda tentukan. Anggap saja seperti variabel yang memegang nilai.
Dan seperti variabel, Anda dapat nama itu apa pun yang Anda inginkan (misalnya. github
, heroku
, destination
, Dll).
remote (alias url repositori) → asal (alias hulu) → master (alias cabang);
remote
, Tingkat yang sama seperti working directory
, index
, repository
,
origin
, peta cabang repositori lokal ke cabang repositori jarak jauh