Cara mengembalikan cabang Master ke hulu

145

Saya telah melakukan repositori git dan mengatur upstream. Saya telah membuat beberapa perubahan di cabang Master dan berkomitmen dan mendorong ke github.

Sekarang apa yang harus saya lakukan untuk meninggalkan semua perubahan saya di cabang Master dan membuatnya identik dengan cabang master hulu?

Gelin Luo
sumber

Jawaban:

277

(Saya berasumsi bahwa perubahan yang sekarang ingin Anda abaikan ada di originremote Anda, Anda berada di mastercabang Anda , dan Anda ingin kembali ke konten dariupstream remote)

Pertama, setel ulang copy pekerjaan Anda ke master hulu:

git remote update
# the double hyphen ensures that upstream/master is
# considered as a revision and not confused as a path
git reset --hard upstream/master --

Kemudian dorong kepala cabang baru ini ke repositori asal Anda, abaikan fakta bahwa itu tidak akan menjadi fast-forward:

git push origin +master
pendatang
sumber
14
Mungkin juga perlu dijalankan git remote add upstream <upstream_repo_url>jika Anda bercabang cabang menggunakan GitHub.
Kato
3
Apa arti dari +dalam git push origin +master? Apakah sama dengan adil git push origin master?
bluenote10
4
@ bluenote10 Mereka tidak sama. The +adalah apa yang memberitahu git untuk "[mengabaikan] fakta bahwa itu tidak akan cepat-maju". Ini seperti melakukan git push --force, tetapi ini hanya berlaku untuk referensi tertentu.
jamaah
1
Tidak bekerja untuk saya. Saya melakukan status git setelah memiliki item yang telah dimodifikasi. Saya harus menghapus dan memulai kembali. Git sangat sulit dimengerti.
Mitch
1
@ ahmet Tidak, hanya mengubah cabang tempat Anda berada.
John