Jika Anda belum mendorong ke asal, Anda dapat mengatur ulang cabang Anda ke cabang hulu dengan:
git checkout mybranch
git reset --hard origin/mybranch
(Pastikan Anda merujuk komit terbaru Anda di cabang terpisah, seperti yang Anda sebutkan dalam pertanyaan Anda)
Perhatikan bahwa tepat setelah reset, mybranch@{1}
merujuk ke komit yang lama, sebelum reset.
Tetapi jika Anda sudah mendorong, lihat " Buat cabang git, dan kembalikan yang asli ke status hulu " untuk opsi lainnya.
Dengan Git 2.23 (Agustus 2019) , yang akan menjadi satu perintah: git switch
.
Yaitu:git switch -C mybranch origin/mybranch
Contoh
C:\Users\vonc\git\git>git switch -C master origin/master
Reset branch 'master'
Branch 'master' set up to track remote branch 'master' from 'origin'.
Your branch is up to date with 'origin/master'.
Itu mengembalikan indeks dan pohon kerja, seperti sebuah git reset --hard
wasiat.
Seperti dikomentari oleh Brad Herman , a reset --hard
akan menghapus file baru atau mereset file yang dimodifikasi ke HEAD .
Sebenarnya, untuk memastikan Anda memulai dari "clean slate", git clean -f -d
setelah reset akan memastikan pohon yang bekerja persis sama dengan cabang yang baru Anda setel ulang.
Posting blog ini menyarankan alias tersebut ( master
hanya untuk cabang, tetapi Anda dapat menyesuaikan / memperluasnya):
[alias]
resetorigin = !git fetch origin && git reset --hard origin/master && git clean -f -d
resetupstream = !git fetch upstream && git reset --hard upstream/master && git clean -f -d
Maka Anda dapat mengetik:
git resetupstream
atau
git resetorigin