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 ?

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).


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

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

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


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

3
Ini kebalikan dari apa yang dicari OP.
Ryan
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.