Cara menghapus cabang yang dihapus dari repo lain

Saya memiliki proyek yang di-host di GitHub bahwa seseorang memiliki cabang. Di cabang mereka, mereka membuat cabang baru "foo" dan membuat beberapa perubahan. Bagaimana saya bisa memindahkan mereka "foo" ke cabang baru, juga disebut "foo" di repo saya?

Saya mengerti bahwa mereka dapat mengirimi saya permintaan penghapusan, tetapi saya ingin memulai proses ini sendiri.

Misalkan yang berikut:

  1. Karena mereka membagi proyek saya, kedua repo kami memiliki "cerita" yang sama
  2. Meskipun GitHub menunjukkan bahwa proyek mereka telah bercabang dari saya, repositori lokal saya tidak memiliki tautan ke proyek pribadi ini. Apakah saya perlu menambahkannya sebagai terhapus?
  3. Saya belum memiliki cabang bernama "foo" - Saya tidak tahu apakah saya harus membuatnya secara manual terlebih dahulu.
  4. Saya pasti ingin ini ditarik di utas terpisah, bukan tuan saya.
207
04 мая '11 в 17:14 2011-05-04 17:14 Colin O'Dell bertanya pada 4 Mei, '11 pukul 17:14 2011-05-04 17:14
@ 6 balasan
 git remote add coworker git://path/to/coworkers/repo.git git fetch coworker git checkout --track coworker/foo 

Ini akan menginstal cabang foo lokal, melacak cabang coworker/foo jarak jauh. Karena itu, ketika karyawan Anda telah membuat beberapa perubahan, Anda dapat dengan mudah menariknya keluar:

 git checkout foo git pull 

Membalas komentar:

Keren :) Dan jika saya ingin membuat perubahan sendiri di utas ini, jika saya membuat "bar" cabang lokal kedua dari "foo" dan bekerja di sana alih-alih di "foo" saya?

Anda tidak perlu membuat cabang baru, bahkan jika saya merekomendasikannya. Anda juga dapat lulus foo secara >foo Anda harus dikonfigurasi sebagai cabang di atasnya:

 git branch --set-upstream foo colin/foo 

Dengan asumsi bahwa colin adalah repositori Anda (repositori jarak jauh kolega Anda), didefinisikan dengan cara yang sama:

 git remote add colin git://path/to/colins/repo.git 
270
04 мая '11 в 17:17 2011-05-04 17:17 jawabannya diberikan ralphtheninja 04 Mei '11 pada 17:17 2011-05-04 17:17

Tidak, Anda tidak perlu menambahkannya sebagai remote. Akan sulit dan menyakitkan untuk dilakukan setiap saat.

Tangkap komitmen Anda:

Kembalikan mereka:

Seringkali Anda ingin memperbaiki sesuatu sendiri dan mendorongnya kembali. Ini juga mungkin:

 git fetch git@github.com:theirusername/reponame.git theirbranch git checkout FETCH_HEAD # fix fix fix git push git@github.com:theirusername/reponame.git HEAD:theirbranch 

Jika Anda bekerja dalam keadaan terputus , buat cabang dengan :ournameforbranch dan ganti FETCH_HEAD dan HEAD atas dengan ournameforbranch .

65
10 марта '17 в 13:40 2017-03-10 13:40 jawabannya diberikan antak 10 Maret '17 pukul 13:40 2017-03-10 13:40

Jika jawabannya adalah antaka:

 git fetch git@github.com:<THEIR USERNAME>/<REPO>.git <THEIR BRANCH>:<OUR NAME FOR BRANCH> 

memberi Anda:

 Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 

Kemudian (mengikuti saran dari Przemek D) gunakan

 git fetch https://github.com/<THEIR USERNAME>/<REPO>.git <THEIR BRANCH>:<OUR NAME FOR BRANCH> 
5
04 сент. Jawabannya diberikan oleh Peter 04 Sep. 2017-09-04 11:05 '17 pada 11:05 2017-09-04 11:05

Jika repo bercabang dilindungi dan Anda tidak dapat memasukkannya >

 git remote add protected_repo https://github.com/theirusername/their_repo.git git fetch protected_repo git checkout --no-track protected_repo/foo 

Sekarang Anda memiliki salinan foo lokal, tanpa hulu yang terkait dengannya. Anda dapat melakukan perubahan padanya (atau tidak), dan kemudian mengirim file Anda ke repositori jarak jauh Anda.

 git push --set-upstream origin foo 

Sekarang foo ada di repo Anda di GitHub, dan foo lokal Anda melacaknya. Jika mereka terus melakukan perubahan pada foo, Anda bisa mendapatkannya dan menyuntikkannya ke foo Anda.

 git checkout foo git fetch protected_repo git merge protected_repo/foo 
1
16 окт. Balas diberikan oleh J Smith pada 16 Okt 2018-10-16 08:56 '18 pada 8:56, 2018-10-16 08:56

Di bawah ini adalah solusi praktis yang baik yang bekerja dengan GitHub untuk memeriksa cabang PR dari fork custom lainnya. Anda perlu mengetahui ID permintaan hapus (yang ditampilkan pada GitHub bersama dengan header PR).

Contoh:

Memperbaiki kode tidak aman Anda # 8
Alice ingin menggabungkan 1 commit ke your_repo:master from her_repo:branch

 git checkout -b <branch> git pull origin pull/8/head 

Ganti konsol Anda jika berbeda dari origin .
Ganti 8 ID permintaan terima yang benar.

0
11 нояб. jawabannya diberikan oleh Subfuzion pada 11 November. 2018-11-11 08:51 '18 pukul 8:51 pagi 2018-11-11 08:51

GitHub memiliki opsi baru sehubungan dengan respons sebelumnya, cukup salin / tempel baris perintah dari PR:

  1. Gulir ke bawah ke PR untuk melihat tombol Merge atau Merge Squash and merge .
  2. Klik tautan di sebelah kanan: view command line instructions
  3. Klik ikon salin di sebelah kanan >
  4. Masukkan perintah ke terminal Anda
0
15 янв. Balas diberikan oleh Robert Monfera pada 15 Jan 2019-01-15 16:00 '19 jam 4 sore 2019-01-15 16:00

Pertanyaan lain tentang tag atau Ajukan pertanyaan