Saya membuat cabang lokal yang ingin saya 'dorong' ke hulu. Ada pertanyaan serupa di sini di Stack Overflow tentang cara melacak cabang jarak jauh yang baru dibuat.
Namun, alur kerja saya sedikit berbeda. Pertama saya ingin membuat cabang lokal, dan saya hanya akan mendorongnya ke atas ketika saya puas dan ingin berbagi cabang saya.
- Bagaimana saya melakukannya? (Pencarian google saya sepertinya tidak menghasilkan apa-apa).
- Bagaimana saya memberi tahu kolega saya untuk menariknya dari repositori hulu?
UPDATE Dengan Git 2.0 ada jawaban sederhana yang saya tulis di bawah ini: https://stackoverflow.com/a/27185855/109305
git
branch
git-branch
Jesper Rønn-Jensen
sumber
sumber
get fetch --all
mengambil cabang baru di sisi jarak jauh (tetapi hanyaget fetch --prune
menghapus secara lokal referensi ke cabang jarak jauh yang dihapus). Saya pikir, apakah ini harus diatur oleh mereka secara otomatis, atau Anda harus berbicara dengan mereka secara lisan.Jawaban:
Pertama, Anda membuat cabang secara lokal:
Cabang jarak jauh secara otomatis dibuat ketika Anda mendorongnya ke server jarak jauh. Jadi ketika Anda merasa siap untuk itu, Anda bisa melakukan:
Di mana
<remote-name>
biasanyaorigin
, nama yang diberikan git ke remote yang Anda kloning. Kolega Anda kemudian hanya akan menarik cabang itu, dan secara otomatis dibuat secara lokal.Perhatikan bahwa secara formal, formatnya adalah:
Tetapi ketika Anda menghilangkan satu, itu mengasumsikan kedua nama cabang adalah sama. Setelah mengatakan ini, sebagai kata peringatan , jangan membuat kesalahan kritis dengan hanya menentukan
:<remote-branch-name>
(dengan titik dua), atau cabang jarak jauh akan dihapus!Sehingga selanjutnya
git pull
tahu apa yang harus dilakukan, Anda mungkin ingin menggunakan:Seperti dijelaskan di bawah,
--set-upstream
opsi ini mengatur cabang upstream:sumber
git push <remote>
tidak akan mendorong cabang jika tidak aktif<remote>
.git push -u <remote-name> <branch-name>
sebagai gantinya, sehingga yang berikutnyagit pull
akan tahu apa yang harus dilakukan.origin
, yang berarti "server saya mendapatkan sisa repo ini dari": demikiangit push origin <branch-name>
.-u
opsi, Anda bisa mengetikgit push -u
setelahnya di cabang, lalugit pull
akan berfungsi.git push -u origin <local-branch-name>
itulah yang berhasil bagi saya.Pertama, Anda harus membuat cabang secara lokal
Setelah itu, Anda dapat bekerja secara lokal di cabang Anda, ketika Anda siap untuk berbagi cabang, dorong. Perintah berikutnya mendorong cabang ke asal repositori jauh dan melacaknya
Rekan tim dapat mencapai cabang Anda, dengan melakukan:
Anda dapat terus bekerja di cabang dan mendorong kapan pun Anda mau tanpa melewati argumen ke git push (argumen git push akan mendorong master ke master jarak jauh, your_branch lokal ke remote your_branch, dll ...)
Rekan tim dapat mendorong ke cabang Anda dengan melakukan komit dan kemudian mendorong secara eksplisit
Atau melacak cabang untuk menghindari argumen agar git push
sumber
Solusi Simple Git 2.0+:
Pada Git 2.0 perilaku menjadi lebih sederhana :
Anda dapat mengkonfigurasi git dengan
push.default = current
untuk membuat hidup lebih mudah:Saya menambahkan ini jadi sekarang saya bisa mendorong cabang baru ke hulu
-u
akan melacak cabang jarak jauh dengan nama yang sama. Sekarang dengan konfigurasi ini Anda akan menebak secara otomatis referensi jarak jauh ke git push. Dari dokumentasi git.config :Bagi saya, ini adalah penyederhanaan yang baik dari alur kerja Git saya sehari-hari. Pengaturan konfigurasi menangani case use 'biasa' di mana Anda menambahkan cabang secara lokal dan ingin membuatnya dari jarak jauh. Juga, saya bisa dengan mudah membuat cabang lokal dari remote dengan hanya melakukan
git co remote_branch_name
(bukan menggunakan--set-upstream-to
flag).Saya tahu pertanyaan ini dan jawaban yang diterima agak lama, tetapi perilaku telah berubah sehingga sekarang ada opsi konfigurasi untuk membuat alur kerja Anda lebih sederhana.
Untuk menambah konfigurasi global Git Anda, jalankan ini pada baris perintah:
sumber
git push -u origin HEAD
sebagai dijawab di sini sedikit lebih verbose (Anda menulis apa yang Anda lakukan) tanpa terlalu banyak mengetik. Selain itu,git push -u
argumen tanpa tambahan tidak berfungsi untuk saya jika cabang dibuat dengan-t
git config --global push.default upstream && git checkout -b foo && <change a file> && git push -u
tidak bekerja (pada git 2.19.1); push membutuhkan argumen jarak jauh dan cabang.git co remote_branch_name
?Sebagaimana dinyatakan dalam jawaban sebelumnya,
cukup untuk mendorong cabang lokal.
Kolega Anda, dapat menarik semua cabang jarak jauh (termasuk yang baru) dengan perintah ini:
Kemudian, untuk melakukan perubahan pada cabang, aliran biasa:
sumber
Buat cabang baru secara lokal berdasarkan cabang saat ini:
Komit setiap perubahan seperti biasa. Kemudian, dorong ke atas:
Ini adalah jalan pintas untuk mendorong cabang saat ini ke cabang dengan nama yang sama
origin
dan melacaknya sehingga Anda tidak perlu menentukanorigin HEAD
di masa depan.sumber
git push -u origin HEAD
. Saya pikir itu cara yang paling jelas.git status
dulu.git remote show origin
sebagai langkah ketiga hanya untuk memvisualisasikan hubungan pelacakan / dilacak baru.Jika Anda ingin membuat cabang dari cabang saat ini
Anda ingin cabang dari cabang jarak jauh, Anda dapat mencoba
Jika Anda selesai dengan perubahan, Anda dapat menambahkan file.
Kemudian lakukan komit secara lokal
Ketika Anda ingin mendorong repo jarak jauh
Semua bersama akan menjadi
atau Jika Anda ingin membuat cabang dari cabang jarak jauh katakanlah pengembangan
git checkout -b bug_fixes asal / pengembangan
Anda dapat mendorong ke cabang ke repo jarak jauh dengan
Kapan saja Anda ingin memperbarui cabang Anda dari cabang lain katakanlah master .
git pull origin master
.sumber
Jika Anda ingin benar-benar hanya membuat cabang jarak jauh tanpa memiliki cabang lokal, Anda dapat melakukannya seperti ini:
Ini mendorong apa pun KEPALA Anda ke cabang foo yang tidak ada pada remote.
sumber
Solusi termudah ... Drumm Roll ... git versi 2.10.1 (Apple Git-78)
NB - Cabang yang baru saja Anda buat di lingkungan lokal Anda, dan cabang jauh yang tidak ada di mana Anda mencoba untuk mendorong, harus memiliki nama yang sama .
sumber
git push -u
cara ini lebih mudah. Mengharuskan Anda memiliki satu baris konfigurasi global, lihat stackoverflow.com/a/27185855/109305 . Saya menggunakangit push -u
terus-menerus, mencakup 99% dari penggunaan saya saat bekerja.[Jawaban cepat]
Anda dapat melakukannya dalam 2 curam:
1. Gunakan
checkout
untuk buat cabang lokal:2. Gunakan
push
perintah untuk membuat cabang secara otomatis dan mengirim kode ke repositori jarak jauh:sumber
Pertama Anda membuat cabang secara lokal:
Dan kemudian untuk membuat cabang dari jarak jauh:
Catatan: Ini berfungsi pada versi terbaru dari git:
Bersulang!
sumber
git push
ketika cabang lokal Anda tidak dilacak oleh remote.Dorong cabang di github:
Ketika Anda ingin melakukan sesuatu di cabang Anda, pastikan untuk berada di cabang Anda.
Anda dapat melihat semua cabang dibuat dengan menggunakan:
Yang akan ditampilkan:
Tambahkan remote baru untuk cabang Anda:
Dorong perubahan dari komit Anda ke cabang Anda:
Perbarui cabang Anda ketika cabang asli dari repositori resmi telah diperbarui:
Maka Anda perlu mendaftar untuk menggabungkan perubahan, jika cabang Anda berasal dari pengembangan, Anda harus melakukan:
Hapus cabang pada sistem file lokal Anda:
Untuk memaksa penghapusan cabang lokal pada sistem file Anda:
Hapus cabang di github:
Di Sini Semua Informasi
Proyek lain yang ada
sumber
Membuat cabang lokal dari cabang yang ada (dapat menjadi master / mengembangkan / cabang lainnya).
Dorong ini ke jarak jauh
Sini,
Jika kami menghapus nama cabang lokal dan jarak jauh, itu akan memiliki format
Ini akan mendorong cabang lokal ke jarak jauh dan dengan nama yang sama dengan branch_name cabang lokal. Cabang lokal juga akan melacak cabang jarak jauh.
sumber
Saya tahu pertanyaan ini dijawab dengan baik, tetapi hanya ingin mendaftar langkah-langkah yang saya ambil untuk membuat cabang baru "myNewBranch" dan mendorong ke jarak jauh ("asal" dalam kasus saya) dan mengatur pelacakan. Pertimbangkan ini versi "TL; DR" :)
sumber
Sekarang dengan git, Anda bisa mengetik, ketika Anda berada di cabang yang benar
git push --set-upstream origin <remote-branch-name
>dan git buat untuk Anda cabang asal.
sumber
Hanya ingin menambahkan itu sementara:
Membuat cabang baru, juga memeriksa cabang itu / menjadikannya cabang Anda saat ini. Jika, karena alasan tertentu, semua yang ingin Anda lakukan adalah mengambil cabang tetapi tidak menjadikannya cabang Anda saat ini, maka Anda akan menggunakan perintah berikut:
Pada perintah pertama, "checkout" membuat cabang kata cabang Anda saat ini, dan "-b" berarti: cabang ini belum ada, jadi buatlah untuk saya.
sumber
Bagaimana melakukannya melalui Source Tree
sumber
git push -u <remote-name> <branch-name>
tidak berfungsi jika cabang yang baru dibuat tidak muncul dari repo yang sama, yaitu jika Anda belum membuat cabang baru menggunakangit checkout -b new_branch
, maka ini tidak akan berfungsi.Sebagai contoh, saya telah mengkloning dua repositori berbeda secara lokal dan saya harus menyalin repo2 / branch1 untuk repo1 / dan kemudian mendorongnya juga.
Tautan ini membantu saya mendorong cabang lokal saya (diklon dari repo lain) ke repo jarak jauh saya:
sumber
Inilah cara Anda melakukannya dalam gerhana melalui Egit.
1) Buka tampilan "Git Repository Exploring" dan keluarkan proyek git yang ingin Anda buat cabang. Di bawah Brances -> Local .. pilih cabang yang ingin Anda buat cabang (Dalam kasus saya saya pilih master .. Anda dapat memilih cabang lain jika Anda mau) .. kemudian klik kanan dan klik pada opsi Buat Cabang .. dan pilih opsi checkout proyek ini dan kemudian klik tombol selesai.
2) Sekarang dari penjelajah proyek pilih proyek .. klik kanan lalu Tim -> Push Branch.
Cabang jarak jauh baru akan dibuat. Anda dapat memberikan nama cabang kepada kolega Anda sehingga mereka dapat menariknya.
sumber
Saya telah menggunakan dua cara untuk membuat cabang
Jika Anda menggunakan TortoiseGit ikuti langkah-langkah ini: -
1.Buat Cabang menggunakan TortoiseGit
2.Tekan cabang
3. Beralih ke cabang baru
Jika Anda menggunakan command prompt ikuti langkah-langkah ini: -
1.Buat cabang menggunakan command prompt
2.Tekan cabang
3. Beralih ke cabang baru itu sudah akan beralih ke new_branch_name jika tidak Anda dapat menggunakan
sumber
Saya menggunakan ini dan itu sangat berguna:
Anda bahkan tidak memerlukan status git; mungkin, saya hanya ingin memastikan semuanya berjalan dengan baik ...
Anda dapat memiliki KEDUA cabang LOKAL dan REMOTE dengan satu perintah.
sumber