Perbedaan antara master asal git pull & master asal git pull


283

Apa perbedaan antara git pull origin masterdan git pull origin/master?


1
Tenang sudah menutupnya, tapi jawabannya adalah Anda tidak boleh melakukannya git pull origin/master. Jika Anda ingin menggabungkan cabang jarak jauh [yang disimpan secara lokal] origin/master, cukup gunakan git merge origin/master.
Cascabel

3
@ Jeffromi: Bisakah Anda menjelaskan mengapa selalu lebih baik melakukan git merge dibandingkan dengan git pull?
Rachel

16
git pullberarti git fetchdiikuti oleh git merge. Itu mengambil konten dari jarak jauh, lalu menggabungkannya ke cabang Anda saat ini. Tetapi origin/mastercabang lokal (melacak cabang jarak jauh). Jika Anda ingin menggabungkannya, Anda tidak perlu mengambil apa pun. Itu menyesatkan untuk mengatakan git pull origin/masterketika Anda tidak benar-benar mengambil dari jarak jauh.
Cascabel

Terima kasih Jefromi untuk informasi yang bermanfaat. Ini sangat membantu untuk memahami konsep yang cukup mudah dan tidak mudah.
Rachel

Bagi mereka yang membaca ini dan masih bingung, origin/masteradalah cabang yang disimpan secara lokal yang menyimpan cabang master di remote asal.
iheanyi

Jawaban:


356

git pull origin masterakan menarik perubahan dari originremote, mastercabang dan menggabungkannya ke cabang check-out lokal.

git pull origin/masterakan menarik perubahan dari cabang yang disimpan secara lokal origin/masterdan menggabungkannya ke cabang check-out lokal. The origin/mastercabang pada dasarnya adalah "salinan cache" dari apa yang terakhir ditarik dari origin, yang mengapa itu disebut cabang terpencil dalam bahasa git. Ini mungkin agak membingungkan.

Anda dapat melihat cabang apa yang tersedia git branchdan git branch -runtuk melihat "cabang jarak jauh".


1
dalam hal git pull origin masterakan selalu bergabung ke cabang master, katakanlah saya di cabang lain di repo saya dan kemudian melakukan perintah di atas, akankah itu memperbarui cabang saya saat ini dengan perubahan jarak jauh asal atau cabang master saya dengan perubahan?
Rachel

4
@calmh: git merge(dan karenanya git pull) selalu bergabung ke cabang saat ini. Untuk bergabung dengan sesuatu selain cabang Anda saat ini, cukup periksa dulu.
Cascabel

2
um .. Saya tidak melihat bagaimana 'asal / master' berbeda dari 'master asal'; mereka berdua cabang master pada asal. Bisakah Anda benar-benar memberi contoh kapan mereka akan berbeda?
Hasen

69
git pull origin/mastermungkin perintah yang valid ketika ini ditulis, tetapi saat ini (git 1.7.10.3) gagal dengan fatal: 'origin/master' does not appear to be a git repository(sebagaimana mestinya - pull selalu untuk menarik dari remote).
user1338062

3
Mengapa git sangat membingungkan? Jadi kita memiliki 4 repositori secara total, benar? Ada (1) repositori jarak jauh, (2) repositori lokal, (3) repositori pementasan, (4) lokal-remote alias asal / master? Mengapa git memiliki repositori # 4 sama sekali?
Mugen

3

git pull origin masterakan mengambil semua perubahan dari cabang master remote dan akan menggabungkannya ke lokal Anda. Kami biasanya tidak menggunakan git pull asal / master. Kami dapat melakukan hal yang sama dengan git merge origin/master. Ini akan menggabungkan semua perubahan dari "salinan cache" dari cabang master asal ke cabang lokal Anda. Dalam kasus saya git pull origin/masteradalah melemparkan kesalahan.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.