Bahkan setelah membaca pertanyaan ini: git-push-current-branch , saya masih mengalami kesulitan untuk mengetahui cara menulis perintah git push saya. Seperti yang disebutkan di tautan pertanyaan, tidak jelas dari dokumentasinya.
Saya ingin menggunakan contoh 'dunia nyata' saya. Berikut adalah apa yang saya lihat ketika saya melakukan git status
perintah di tingkat atas cabang saya:
Di cabang amd_qlp_tester
Cabang Anda di depan 'origin / amd_qlp_tester' dengan 5 komit.
dll ...
Jadi nama cabang saya amd_qlp_tester
tetapi "bercabang" dari cabang utama (jika saya salah istilah itu karena latar belakang SVN saya). Tapi kemudian ada juga nama `origin / amd_qlp_testser '
Jadi bagaimana cara menyusun perintah push saya?
Apakah itu salah satu dari yang berikut:
git push origin/amd_qlp_tester
git push origin amd_qlp_tester
git push amd_qlp_tester
git push origin
git push
sumber
origin amd_qlp_testser
dan bukanorigin/amd_qlp_tester
origin
). Branch (es) untuk mendorong default (dalam versi git saat ini) ke:
if unset, yang artinyamatching
, tapi itu seharusnya berubah di masa depan.git push
mencoba untuk mendorong semua cabang yang dilacak, bertentangan dengan apa yang Anda katakan ("remote cabang saat ini adalah nilai default").simple
strategi push yang berarti hanya akan mendorong cabang saat ini. blogs.atlassian.com/2014/06/happened-git-2-0-full-goodiesfatal: Couldn't find remote ref branch-name-here
Jika cabang lokal dan cabang jarak jauh Anda memiliki nama yang sama maka Anda dapat melakukannya:
Ketika nama cabang lokal dan jarak jauh Anda berbeda maka Anda dapat melakukannya:
sumber
Jawaban atas pertanyaan yang Anda tautkan adalah tentang mengkonfigurasi git sehingga Anda dapat memasukkan
git push
perintah yang sangat singkat dan meminta mereka melakukan apa pun yang Anda inginkan. Bagus sekali, jika Anda tahu apa yang Anda inginkan dan cara mengejanya di Git-Ese, tetapi Anda baru mengenal git! :-)Dalam kasus Anda, jawaban Petr Mensik adalah (yah, "a") yang benar. Inilah alasannya:
Akar perintah di sekitar file Anda untuk menemukan "remote" bernama (misalnya, ). File konfigurasi mencantumkan:
git push remote
.git/config
origin
ssh://hostname/path
git fetch remote
Saat Anda pertama kali mengkloning repo — kapan pun itu — git menyiapkan nilai default untuk beberapa di antaranya. URL adalah apa pun yang Anda kloning dari dan sisanya, jika diatur atau tidak diset, semua "masuk akal" default ... atau, hmm, yang mereka?
Masalah dengan ini adalah bahwa orang telah berubah pikiran, dari waktu ke waktu, tentang apa yang "masuk akal". Jadi sekarang (tergantung pada versi git Anda dan apakah Anda telah mengonfigurasi secara detail), git mungkin mencetak banyak peringatan tentang perubahan default di masa mendatang. Menambahkan nama "cabang yang akan didorong" -
amd_qlp_tester
- (1) menutupnya, dan (2) mendorong hanya satu cabang itu.Jika Anda ingin mendorong dengan lebih nyaman, Anda dapat melakukannya dengan:
atau bahkan:
tetapi apakah itu sesuai dengan keinginan Anda, tergantung pada apakah Anda setuju dengan "penulis git awal" bahwa default aslinya wajar, atau "penulis git nanti" bahwa default asli tidak masuk akal. Jadi, ketika Anda ingin melakukan semua hal konfigurasi (akhirnya), lihat pertanyaan (dan jawaban) yang Anda tautkan.
Adapun nama
origin/amd_qlp_tester
di tempat pertama: itu sebenarnya adalah entitas lokal (nama yang disimpan di dalam repo Anda), meskipun itu disebut "cabang jarak jauh". Tebakan terbaikamd_qlp_tester
adalah "di mana di sana". Git memperbaruinya jika bisa .sumber
git push origin amd_qlp_tester
sampai saya memiliki kebutuhan untuk melakukan hal-hal yang lebih canggih :)Saya ingin menambahkan jawaban yang diperbarui - sekarang saya telah menggunakan git untuk sementara waktu, saya menemukan bahwa saya sering menggunakan perintah berikut untuk melakukan dorongan (menggunakan pertanyaan asli sebagai contoh):
git push origin amd_qlp_tester
- dorong ke cabang yang terletak di remote yang dipanggilorigin
pada cabang jarak jauh yang dipanggilamd_qlp_tester
.git push -u origin amd_qlp_tester
- sama seperti yang terakhir, tetapi mengatur upstream yang menghubungkan cabang lokal ke cabang jarak jauh sehingga lain kali Anda bisa menggunakangit push/pull
jika belum terhubung (hanya perlu melakukannya sekali).git push
- Setelah Anda menyetel upstream, Anda dapat menggunakan versi yang lebih pendek ini.-u
Opsi catatan adalah versi pendek--set-upstream
- keduanya sama.sumber