Memperbarui repositori lokal dengan perubahan dari repositori GitHub
567
Saya punya proyek yang diperiksa secara lokal dari GitHub, dan repositori jarak jauh sejak itu telah membuat perubahan. Apa perintah yang benar untuk memperbarui salinan lokal saya dengan perubahan terbaru?
Perlu dicatat bahwa github telah menghasilkan serangkaian panduan yang sangat informatif dan bermanfaat untuk menggunakan git dan github. Saya menemukan mereka sangat berharga ketika saya pertama kali pindah ke git. help.github.com
Ia mengeluh: "Anda diminta untuk menarik dari 'asal' jarak jauh, tetapi tidak menentukan cabang. Karena ini bukan remote yang dikonfigurasi secara default untuk cabang Anda saat ini, Anda harus menentukan cabang di baris perintah." Jadi saya mencoba "$ git pull master asal" dan itu berhasil dengan baik.
Juan Lanus
8
git pull master asal
Andrzej Rehmann
1
Saya menghapus beberapa file dan tidak membawanya lagi, tahu?
Aquarius Power
1
Apakah kita melakukan git commit sebelum menjalankan ini? setiap kali saya menjalankan perintah ini, saya berakhir dengan 18347213846 file yang dimodifikasi yang bahkan tidak saya sentuh !!!
Orkun Ozen
5
Saya baru belajar dengan cara yang sulit bahwa menarik cabang repositori jarak jauh yang baru tidak membuat cabang dari nama itu secara lokal, tetapi sebaliknya menarik cabang jauh itu ke dalam cabang lokal apa pun yang kebetulan diperiksa. Saya tidak yakin bagaimana cara membatalkan kekurangan ini dan kloning ulang repositori. Dalam kasus apa pun, tampaknya cabang lokal tidak tergantung pada cabang jarak jauh dan Anda harus selalu memastikan bahwa Anda berada di cabang lokal yang dimaksud sebelum menarik.
Joe Lapp
87
Ini harus bekerja untuk setiap repo default:
git pull origin master
Jika cabang default Anda berbeda dengan master, Anda harus menentukan nama cabang:
Jika Anda menggunakan git fetchmetode ini, Anda juga ingin mengambil tag git fetch -t. Jika Anda puas dengan perubahan ( git log HEAD..FETCH_HEAD), Anda dapat menggabungkannya git merge FETCH_HEAD.
Brad Grissom
16
Pertanyaan ini sangat umum dan ada beberapa asumsi yang akan saya buat untuk menyederhanakannya sedikit. Kami akan menganggap bahwa Anda ingin memperbarui mastercabang Anda .
Jika Anda belum membuat perubahan apa pun secara lokal, Anda dapat menggunakan git pulluntuk menurunkan komitmen baru dan menambahkannya ke master.
git pull origin master
Jika Anda telah membuat perubahan, dan Anda ingin menghindari menambahkan komit gabungan baru, gunakan git pull --rebase.
git pull --rebase origin master
git pull --rebase akan berfungsi bahkan jika Anda belum melakukan perubahan dan mungkin merupakan panggilan terbaik Anda.
Jawaban:
Mungkin:
sumber
Ini harus bekerja untuk setiap repo default:
Jika cabang default Anda berbeda dengan
master
, Anda harus menentukan nama cabang:sumber
Namun, Anda harus menggabungkan perubahan apa pun ke cabang lokal Anda. Jika Anda berada di cabang yang melacak cabang jarak jauh di Github, maka
pertama-tama akan melakukan pengambilan, dan kemudian bergabung dengan cabang yang dilacak
sumber
git fetch
metode ini, Anda juga ingin mengambil taggit fetch -t
. Jika Anda puas dengan perubahan (git log HEAD..FETCH_HEAD
), Anda dapat menggabungkannyagit merge FETCH_HEAD
.Pertanyaan ini sangat umum dan ada beberapa asumsi yang akan saya buat untuk menyederhanakannya sedikit. Kami akan menganggap bahwa Anda ingin memperbarui
master
cabang Anda .Jika Anda belum membuat perubahan apa pun secara lokal, Anda dapat menggunakan
git pull
untuk menurunkan komitmen baru dan menambahkannya kemaster
.Jika Anda telah membuat perubahan, dan Anda ingin menghindari menambahkan komit gabungan baru, gunakan
git pull --rebase
.git pull --rebase
akan berfungsi bahkan jika Anda belum melakukan perubahan dan mungkin merupakan panggilan terbaik Anda.sumber
Dengan master asal yang sudah ditetapkan, Anda hanya perlu menggunakan perintah di bawah ini -
sumber