Bisakah saya melakukan yang berikut dengan cara yang lebih sederhana?
git checkout origin/master
git branch -D master
git branch master
git checkout master
Bisakah saya melakukan yang berikut dengan cara yang lebih sederhana?
git checkout origin/master
git branch -D master
git branch master
git checkout master
Jawaban:
Sebagai KindDragon 's jawaban menyebutkan, Anda dapat menciptakan master
langsung di origin/master
dengan:
git checkout -B master origin/master
The git checkout
halaman manual menyebutkan:
Jika -B
diberikan, <new_branch>
dibuat jika tidak ada; jika tidak, itu diatur ulang . Ini adalah setara transaksional dari
$ git branch -f <branch> [<start point>]
$ git checkout <branch>
Awalnya disarankan:
Sesuatu seperti:
$ git checkout master
# remember where the master was referencing to
$ git branch previous_master
# Reset master back to origin/master
$ git reset --hard origin/master
dengan langkah 2 menjadi opsional.
Git mendukung perintah ini:
git checkout -B master origin/master
Periksa origin/master
cabang dan reset master
cabang di sana.
git fetch origin master
sebelum memastikan origin/master
diperbarui?
git fetch
terlebih dahulu
Saya pikir bahkan jawaban VonC memiliki kompleksitas dibandingkan dengan opsi ini:
git update-ref refs/heads/master origin/master
git reset --hard master
git secara otomatis mencatat setiap nilai ref (melalui reflog). Jadi setelah Anda menjalankan perintah itu, maka master@{1}
merujuk ke nilai master sebelumnya.
Jawaban VonC benar, tetapi membuang-buang waktu untuk keluar dari nilai lama master ke sistem file.
Jika Anda peduli tentang benda yatim di repo, maka Anda dapat berlari git gc
Already on 'master'
Jika sudah aktif master
Anda dapat melakukan hal berikut:
git reset --hard origin/master
Ini akan mengarahkan master
cabang lokal ke remote origin/master
dan membuang modifikasi apa pun di dir yang berfungsi.
git checkout -B master origin/master
?