Menyiapkan asal git remote

180

Saya punya repo berikut.

  1. DEV REPO: dalam direktori di mesin pengembangan saya tempat saya membuat perubahan
  2. REPO UTAMA: repositori kosong pada mesin pengembangan saya yang saya tekan perubahan dari dev repo
  3. PRODUCTION REPO: repositori pada mesin host untuk menarik pembaruan dari repo utama

Saya biasa git remote add origin /Users/me/sites/main_repomengatur repo UTAMA sebagai asal untuk repo DEV. Repo PRODUKSI ada di host jarak jauh. Dapatkah saya menggunakan variasi dari perintah yang sama untuk mengatur repo MAIN sebagai asal untuk repo PRODUKSI juga? Jika "ya", maka saya kira sintaks akan menyertakan alamat ip. Seperti apa kelihatannya?

Jay
sumber
Bukankah maksud Anda "untuk mengatur repo PRODUKSI sebagai asal untuk repo UTAMA"?
Pedro A

Jawaban:

289

Menggunakan SSH

git remote add origin ssh://login@IP/path/to/repository

Menggunakan HTTP

git remote add origin http://IP/path/to/repository

Namun memiliki git pullproses penempatan yang sederhana biasanya merupakan ide yang buruk dan harus dihindari demi skrip penerapan yang nyata.

Clement Herreman
sumber
6
Mengapa itu ide yang sangat buruk? Melakukan beberapa pencarian sekarang untuk contoh skrip penerapan.
Jay
14
Karena penggelaran sering berarti (baca "selalu") lebih dari sekadar apa yang git pulldilakukan. Anda mungkin perlu mengatur kredensial DB produksi, menghapus cache, menambah nomor versi, mencadangkan versi yang lebih lama sehingga Anda dapat memutar kembali jika terjadi kesalahan, mengoptimalkan / memperkecil aset Anda (misalnya CSS dan Js) dan bazillion lainnya sesuatu.
Clement Herreman
33
@ClementHerreman - sepertinya, berdasarkan penjelasan Anda, menggunakan git pull bukan "ide buruk" karena ini adalah solusi terbatas. Kadang-kadang saya menemukan git pull menjadi solusi penyebaran sederhana yang sangat efektif, ketika saya memiliki skenario sederhana.
Brady Holt
4
Saya pikir Anda perlu menentukan ssh: // untuk cara ssh, yaitu, git remote add origin ssh: // login @ IP / path / ke / repositori
kakyo
4
Saya pikir jika kita mengubah pernyataan akhir menjadi "kadang-kadang ide yang buruk" tidak berani ini akan menjadi jawaban yang sangat baik.
Chris Moschini
104

Bagi siapa pun yang datang ke sini, seperti yang saya lakukan, mencari sintaks untuk mengubah asal ke lokasi yang berbeda, Anda dapat menemukan dokumentasi itu di sini: https://help.github.com/articles/changing-a-remote-s-url/ . Menggunakan git remote adduntuk melakukan ini akan menghasilkan "fatal: asal jauh sudah ada."

Singkatnya: git remote set-url origin https://github.com/username/repo

(Jawaban yang ditandai sudah benar, aku hanya berharap bisa membantu siapa pun yang hilang seperti aku ... haha)

kehilangan filsuf
sumber
2
Jawaban ini lebih baik bagi orang yang ingin mengubah "git remote url" jika sudah ada. Terima kasih @lostphilosopher
eonist
17

Anda dapat memasukkan cabang yang akan dilacak saat mengatur jarak jauh, agar segala sesuatu berfungsi seperti yang Anda harapkan:

git remote add --track master origin [email protected]:group/project.git   # git
git remote add --track master origin [email protected]:group/project.git   # git w/IP
git remote add --track master origin http://github.com/group/project.git   # http
git remote add --track master origin http://172.16.1.100/group/project.git # http w/IP
git remote add --track master origin /Volumes/Git/group/project/           # local
git remote add --track master origin G:/group/project/                     # local, Win

Ini membuat Anda tidak perlu mengedit konfigurasi git Anda secara manual atau menentukan pelacakan cabang secara manual.

Michael Thompson
sumber