Perbedaan antara master asal git pull & master asal git pull

283

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

Rachel
sumber
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".

Jakob Borg
sumber
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.

Dhruvil Shah
sumber
1

git pull= git fetch+git merge origin/branch

git pulldan git pull origin branchhanya berbeda bahwa yang terakhir hanya akan "memperbarui" asal / cabang dan tidak semua asal / * seperti git pullhalnya.

git pull origin/branchtidak akan berfungsi karena sedang mencoba melakukan git fetch origin/branchyang tidak valid.

Pertanyaan terkait: git fetch + git merge origin / master vs git pull origin / master

pengguna33276346
sumber