Mari kita asumsikan ada repositori someone/foobar
di GitHub, yang saya inginkan me/foobar
.
Bagaimana cara menarik komit baru dari repositori induk langsung ke garpu saya , tanpa harus menambahkan remote yang terpisah dan ingat untuk menarik secara teratur dari sana ?
Tujuannya adalah untuk:
git pull
untuk mengambil dari repositori indukgit push
untuk mengirim semuanya ke garpu saya
Jawaban:
Buka repositori Git bercabang saya / foobar .
Klik Bandingkan :
Anda akan mendapatkan notifikasi:
Klik untuk beralih basis di halaman ini:
Kemudian Anda bisa melihat semua komit dibuat untuk seseorang / foobar setelah hari Anda bercabang itu.
Klik pada Buat permintaan tarik :
Berikan judul permintaan tarik dan mungkin deskripsi dan klik Buat permintaan tarik .
Di halaman berikutnya, gulir ke bagian bawah halaman dan klik Gabungkan permintaan tarik dan Konfirmasi penggabungan .
Git Anda repositori saya / foobar akan diperbarui.
Sunting: opsi rebase ditampilkan di sini:
sumber
Edit
tombol dan secara manual beralihbase fork
keme/foobar
danhead fork
kesomeone/foobar
. Dengan cara ini jauh lebih jelasNamun ada satu peringatan:
Ini sempurna jika Anda adalah satu-satunya yang melakukan perubahan pada garpu Anda.
Namun, jika dibagikan dengan orang lain, Anda mungkin harus menarik dari garpu Anda, dalam hal ini remote yang terpisah adalah satu-satunya solusi.
Sunting:
Sebenarnya, Anda bisa
git pull [email protected]:me/foobar
, yang menghilangkan peringatan.Pilihan ada di tangan Anda yang lebih mudah diingat.
sumber
Saya menggunakan metode yang cukup sederhana menggunakan GitHub Web UI untuk melakukan itu:
me/foobar
)sumber
Aplikasi "Tarik" adalah solusi pengaturan-dan-lupa otomatis. Ini akan menyinkronkan cabang default dari garpu Anda dengan repositori hulu.
Kunjungi URL, klik tombol hijau "Instal" dan pilih repositori tempat Anda ingin mengaktifkan sinkronisasi otomatis.
Cabang diperbarui sekali per jam langsung di GitHub, pada mesin lokal Anda, Anda perlu menarik cabang master untuk memastikan bahwa salinan lokal Anda sinkron.
Juga dijawab di https://stackoverflow.com/a/58965171/946850 .
sumber
Pilihan lain adalah menggunakan
Update from upstreamRepoName/master
tombol di GitHub untuk Mac (dan saya berasumsi GitHub untuk Windows).sumber
Saya tidak tahu bagaimana hal itu dapat dilakukan tanpa menambahkan remote lain, namun saya selalu menambahkan repo yang saya gunakan sebagai
upstream
remote sehingga saya bisa melakukannya:Ini akan menyinkronkan semua cabang termasuk membuat yang baru (hapus
refs/heads/
untuk hanya memperbarui cabang yang ada). Jika ada cabang Anda yang menyimpang maka akan menimbulkan kesalahan untuk cabang itu.sumber