Saya bercabang repositori seseorang di GitHub dan ingin memperbarui versi saya dengan komit dan pembaruan yang dibuat dalam repositori asli. Ini dibuat setelah saya mengambil salinan saya.
Bagaimana saya bisa menarik perubahan yang dibuat di tempat asal dan memasukkannya ke dalam repositori saya?
git push --force origin --tags
setelah solusi yang diajukan!Jawaban:
Anda harus menambahkan repositori asli (yang Anda garpu) sebagai remote.
Dari halaman manual garpu GitHub :
Anda juga memiliki permata ruby yang dapat memfasilitasi operasi GitHub tersebut .
Lihat juga " Garpu git adalah klon git? ".
sumber
git rebase upstream/master
, tapi saya telah menambahkan dua kemungkinan dalam jawabannya.git push --force
, mengganti riwayat cabang Anda di GitHub dengan cabang lokal Anda yang baru saja Anda rebase. Karena hanya Anda yang menggunakan cabang sedih, tidak ada kekacauan yang terlibat.Selain jawaban VonC, Anda dapat menyesuaikannya sesuai dengan keinginan Anda lebih jauh.
Setelah mengambil dari cabang jauh, Anda masih harus menggabungkan komit. Saya akan ganti
dengan
karena git pull pada dasarnya adalah git fetch + git merge.
sumber
git rebase upstream master
Perhatikan bahwa ini bukan bebas konflik jika Anda cukup menyimpang dariupstream/master
. Lihat git-scm.com/docs/git-rebase (tl; dr: hard ini me-reset master lokal Anda ke upstream, dan kemudian mencoba untuk menghapus semua komit lokal dari titik divergensi ke depan)Video ini menunjukkan cara memperbarui garpu langsung dari GitHub
Langkah:
Pull Requests
.New Pull Request
. Secara default, GitHub akan membandingkan yang asli dengan garpu Anda, dan seharusnya tidak ada yang bisa dibandingkan jika Anda tidak melakukan perubahan apa pun.switching the base
. Sekarang GitHub akan membandingkan garpu Anda dengan yang asli, dan Anda akan melihat semua perubahan terbaru.Create a pull request
untuk perbandingan ini dan tentukan nama yang dapat diprediksi untuk permintaan tarik Anda (misalnya, Perbarui dari aslinya).Create pull request
.Merge pull request
dan akhirnyaConfirm
bergabung. Jika garpu Anda tidak memiliki perubahan, Anda dapat menggabungkannya secara otomatis.sumber
switching the base
opsiMenggunakan:
Ini akan mengatur upstream Anda ke repositori tempat Anda bercabang. Kemudian lakukan ini:
Ini akan mengambil semua cabang termasuk master dari repositori asli.
Gabungkan data ini di cabang master lokal Anda:
Dorong perubahan ke repositori bercabang Anda yaitu ke asal:
Voila! Anda selesai dengan menyinkronkan repositori asli.
sumber
Jika Anda menggunakan aplikasi desktop GitHub, ada tombol sinkronisasi di sudut kanan atas. Klik di atasnya kemudian di
Update from <original repo>
dekat kiri atas.Jika tidak ada perubahan yang akan disinkronkan, ini akan menjadi tidak aktif.
Berikut adalah beberapa tangkapan layar untuk mempermudah ini.
sumber
Jika tidak ada ruginya Anda juga bisa menghapus garpu Anda saja pergi ke pengaturan ... pergi ke bagian zona bahaya di bawah ini dan klik hapus repositori. Ini akan meminta Anda untuk memasukkan nama repositori dan kata sandi Anda setelahnya. Setelah itu Anda baru saja garpu asli.
sumber
Jika Anda ingin melakukannya tanpa cli, Anda dapat melakukannya sepenuhnya di situs web Github.
New pull request
.Create new pull request
.sumber
Untuk secara otomatis menyinkronkan repositori bercabang Anda dengan repositori induk, Anda bisa menggunakan Pull App di GitHub.
Lihat Readme untuk detail lebih lanjut.
Untuk pengaturan lanjutan di mana Anda ingin menyimpan perubahan yang Anda lakukan pada repositori bercabang, lihat jawaban saya pada pertanyaan serupa di sini .
sumber