Bagaimana cara menyinkronkan dengan repositori Git jarak jauh?

94

Saya membuat proyek di github, membuat beberapa perubahan, sejauh ini bagus.

Sementara itu, repositori tempat saya bercabang berubah dan saya ingin memasukkan perubahan itu ke dalam repositori saya. Bagaimana aku melakukan itu ?

George Profenza
sumber

Jawaban:

77

Secara umum git pullsudah cukup, tetapi saya tidak yakin tata letak apa yang Anda pilih (atau yang telah dipilih oleh github untuk Anda).

Šimon Tóth
sumber
4
git pull tidak akan berfungsi kecuali Anda telah mengkonfigurasi remote untuk mengambil dan cabang yang akan digabungkan.
Abizern
Saya berasumsi bahwa itu dilakukan selama fase "membuat garpu". Kecuali jika informasi ini dibuang, seharusnya masih ada.
Šimon Tóth
menggunakan git pull dengan https tidak berhasil, tetapi dengan http berhasil ... sekarang saya sudah up to date, Terima kasih!
George Profenza
@GeorgeProfenza Itu tidak aman. Pertimbangkan untuk menggunakanssh
JVE999
66

Dengan asumsi pembaruan mereka ada di master, dan Anda berada di cabang tempat Anda ingin menggabungkan perubahan.

git remote add origin https://github.com/<github-username>/<repo-name>.git
git pull origin master

Perhatikan juga bahwa Anda kemudian ingin mendorong penggabungan kembali ke salinan repositori Anda:

git push origin master
Tandai Hibberd
sumber
menambahkan berfungsi, menarik tidak :(, saya mendapat kesalahan terkait https: error: https protokol tidak didukung atau dinonaktifkan di libcurl saat mengakses github.com/mrdoob/three.js.git/info/refs fatal: permintaan HTTP gagal Petunjuk?
George Profenza
Platform apa? Sepertinya salah satu dependensi git tidak lengkap.
Mark Hibberd
Sebagai solusi, Anda juga dapat menggunakan protokol git daripada https, misalnya git remote set-url git: //github.com/mrdoob/three.js.git - kemudian coba git pull.
Mark Hibberd
berjalan di osx. Saya berhasil mendapatkannya menggunakan git pull github.com/mrdoob/three.js.git master
George
3
salah ketik dalam perintah, saya pikir, Anda mulai dengan original, lalu beralih keorigin
Benjol
46

Anda harus menambahkan repo asli sebagai upstream.

Semuanya dijelaskan dengan baik di sini: https://help.github.com/articles/fork-a-repo

git remote add upstream https://github.com/octocat/Spoon-Knife.git
git fetch upstream
git merge upstream/master
git push origin master
Alex
sumber
5

Anda perlu menambahkan repositori asli (yang Anda buat bercabang) sebagai remote.

git remote add github (kloning url untuk repositori orignal)

Kemudian Anda perlu memasukkan perubahan ke repositori lokal Anda

git fetch github

Sekarang Anda akan memiliki semua cabang dari repositori asli di repositori lokal Anda. Misalnya, cabang master akan menjadi github/master. Dengan cabang-cabang ini Anda dapat melakukan apa yang Anda mau. Gabungkan mereka ke cabang Anda dll

Abizern
sumber
1
Saya menyarankan nama upstreamuntuk remote.
vidstige
@vidstige Yang tidak cukup deskriptif jika Anda memiliki banyak remote untuk sebuah repositori. Misalnya, saya sering memiliki remote di Github dan remote di Dropbox.
Abizern
baik, maka tentu saja itu masuk akal. Itulah mengapa sangat bagus memiliki kemampuan untuk menamainya sendiri. Sadarilah penyiapan Anda mungkin kurang umum daripada memiliki satu remote yang disebut origin yang merupakan garpu Anda sendiri dan kemudian Anda memiliki yang asli, yang biasanya dinamai "upstream".
vidstige
-8

Untuk Linux:

git add * 
git commit -a --message "Initial Push All"
git push -u origin --all
Tamu
sumber
3
Ini kebalikan dari apa yang dicari OP.
Ryan