Bagaimana Anda memperbarui garpu repo GitHub di antarmuka web?

58

Saya memiliki repositori Github yang saya gali dari beberapa proyek lain beberapa bulan yang lalu. Sekarang beberapa bulan kemudian dan repo master asli telah berubah. Saya ingin memperbarui repo saya untuk mencerminkan perubahan itu. Apakah ini mungkin di antarmuka web Github? Atau apakah saya hanya perlu menghapus repo dan bercabang ulang?

Jake Wilson
sumber
Tarik pembaruan baru dari repositori Github asli ke repositori Github sebenarnya lebih dekat daripada yang di atas.
Dan Dascalescu
github.com/isaacs/github/issues/438
Ciro Santilli 新疆 改造 中心 法轮功 六四 事件

Jawaban:

43

Anda dapat mencoba dan membalikkan bagaimana permintaan tarik terjadi.

  1. Buka garpu Anda
  2. Mengeluarkan Permintaan Tarik

    Secara default, ini adalah garpu Anda di sebelah kanan ( head repo ) yang meminta untuk mendorong komit dan perubahan ke repo asli ( repo basis ) di sebelah kiri.

  3. Klik tarik turun untuk repo dasar dan repo kepala dan pilih repo masing-masing.

    Anda ingin daftar Anda terdaftar di sebelah kiri (menerima perubahan) ketika repositori asli ada di sebelah kanan (yang memiliki perubahan untuk ditekan). Seperti yang diilustrasikan dalam gambar ini:

    garpu dilakukan sendiri

  4. Kirim permintaan tarik

    Jika garpu Anda belum memiliki perubahan, Anda seharusnya dapat secara otomatis menerima penggabungan.

Jika kode Anda entah bagaimana konflik atau tidak cukup bersih, maka ini tidak akan berfungsi untuk memperbarui melalui antarmuka web GitHub dan Anda akan perlu mengambil kode dan menyelesaikan setiap konflik pada mesin Anda sebelum mendorong kembali ke garpu Anda.

Delapan Hari Malaise
sumber
3
Ini masih berfungsi tetapi ya itu tidak ideal. Ini pasti hanya tipuan. Bukan cara yang tepat untuk melakukannya.
Jake Wilson
3
Mengonfirmasi ide buruk. Ini mencemari repositori dengan cara yang disarankan Github agar Anda menarik permintaan komit kosong ke proyek asli. Lihat misalnya github.com/dthommes/RoboSpring/pull/3 - Setelah saya berkontribusi, maka saya menyinkronkan dan sekarang Github ingin saya mendorong komit "Menyinkronkan garpu saya" yang diberi label sebagai "Gabungkan permintaan tarik # 1 dari dthommes / master … "
usr-local-ΕΨΗΕΛΩΝ
1
Saya tidak berpikir ini bekerja lagi. Meskipun tampaknya agak aneh, tidak ada cara sederhana untuk melakukan ini.
Toby Allen
1
Aku hanya mencoba, dan itu tidak segera tampak bekerja - ketika mengubah salah satu dari garpu segera membuka "perubahan Membandingkan" halaman. Tetapi mengklik tautan "bandingkan lintas fork" tetap memungkinkan untuk mengubah fork lainnya. Mungkin Anda bisa menambahkan sesuatu ke efek ini ke jawaban Anda.
Peter Mortensen
4
GitHub harus menambahkan tombol "Sync Fork" sehingga Anda tidak perlu membuat satu juta PR. Untuk sekarang saya menggunakan baris perintah untuk memperbarui garpu saya
Suici Doga
22

Ini akan lebih mudah.

  1. Buka Forked Repo (milik Anda) dan cukup klik tombol - "Permintaan tarik baru".
  2. Pada halaman yang terbuka, ada tautan kecil ke "switching base" dalam pesan di bawah dropdownselect. Klik tautannya.
  3. Sekarang secara otomatis akan mengarah ke repo asli Anda. Klik tombol Buat Permintaan Tarik dan tulis beberapa pesan komit.
  4. Sekarang ini akan menyebabkan repo bercabang Anda secara otomatis, klik Gabungkan permintaan tarik dan Konfirmasikan penggabungan untuk menyelesaikan.
Youngjae
sumber
Anda harus mengklarifikasi apa tombol hijau itu dan itu akan menjadi respons yang hebat ....
Rodrigo Graça
Ini jelas merupakan jawaban terbaik per 4/2016.
dr01
7
Masalah dengan metode ini adalah ia menambahkan komit tambahan ke cabang Anda, jadi itu tidak benar-benar sinkron dengan repo hulu.
Mottie
@Mottie Apakah ada cara bagi kami untuk mengetahui apakah fork kami ada di belakang versi hulu terbaru, dan melihat perbedaan dari perubahan, tanpa benar-benar menariknya?
Sujay Phadke
1
@SujayPhadke Pada halaman repo forked utama Anda di bawah tombol pilih cabang akan muncul pesan "Cabang ini xx komit di belakang xxxx: master.". Sedangkan untuk melihat diff, ada tombol "bandingkan" di baris yang sama dengan pesan; atau Anda dapat menuju ke tautan ini:https://github.com/{user}/{forkedRepoName}/compare/master...{originalRepo}:master
Mottie
3

Cara memperbarui repo GitHub bercabang dua dengan perubahan dari repositori hulu jarak jauh


Petunjuk dari Bantuan GitHub:

Mengkonfigurasi Fork Remote

Menyinkronkan Garpu


Petunjuk Penyiapan / Operasi:

Buka Git Bash (Windows) atau Linux / Mac Terminal

Jika Anda belum mengkloning repositori Anda, Anda harus mengubah ke direktori kerja folder pengembangan Anda dan mengkloningnya ke workstation Anda.

$ git clone https://github.com/YOUR_USERNAME/YOUR_FORK.git

Ubah ke direktori kerja repo forked Anda di workstation Anda.

$ cd /user/development/my_forked_repo/

Daftar repositori jarak jauh yang dikonfigurasi saat ini untuk garpu Anda.

 $ git remote -v

origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)

Tentukan repositori hulu jarak jauh baru yang akan disinkronkan dengan garpu.

$ git remote add upstream https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git

Verifikasi repositori hulu baru yang Anda tentukan untuk garpu Anda.

$ git remote -v

origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

Ambil cabang dan komit masing-masing dari repositori hulu. Komitmen untuk dikuasai akan disimpan di cabang lokal, hulu / master.

$ git fetch upstream

remote: Counting objects: 75, done.
remote: Compressing objects: 100% (53/53), done.
remote: Total 62 (delta 27), reused 44 (delta 9)
Unpacking objects: 100% (62/62), done.
From https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY
 * [new branch]      master     -> upstream/master

Periksa cabang master cabang garpu Anda.

$ git checkout master

Switched to branch 'master'

Gabungkan perubahan dari hulu / master ke cabang master lokal Anda. Ini membuat cabang utama garpu Anda disinkronkan dengan repositori hulu, tanpa kehilangan perubahan lokal Anda.

$ git merge upstream/master

Updating a422352..5fdff0f
Fast-forward
README                    |    9 -------
README.md                 |    7 ++++++
 2 files changed, 7 insertions(+), 9 deletions(-)
 delete mode 100644 README
 create mode 100644 README.md

Jika cabang lokal Anda tidak memiliki komitmen unik, Git akan melakukan "maju cepat":

$ git merge upstream/master

Updating 34e91da..16c56ad
Fast-forward
 README.md                 |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Anda sekarang harus mendorong komit ke garpu Anda.

$ git push

Jika Anda belum mengautentikasi, itu akan meminta nama pengguna / kata sandi github Anda. Setelah dikonfirmasi, komit baru harus didorong ke garpu dan dapat dilihat di github.

ode2k
sumber
5
Terima kasih atas jawaban terperinci Anda namun harapannya adalah solusi menggunakan antarmuka web.
Toby Allen