git - remote tambahkan asal vs asal set-url jarak jauh


413

Saya membuat repositori baru:

git init
echo "# MESSAGE" >> README.md
git add README.md
git commit -m "first commit"

Lalu saya ingin mendorong komit saya ke repositori remote kosong yang dibuat di github jadi saya harus mengatur jarak jauh.

Apa perbedaan antara menggunakan perintah berikut? :

git remote add origin git@github.com:User/UserRepo.git
git remote set-url origin git@github.com:User/UserRepo.git

Pada akhirnya saya melakukan push:

git push -u origin master

Sunting1:

Apa yang terjadi ketika saya memanggil asal set-url jauh setelah git init? Apakah remote set-url asal membuat asal? Jika asal sudah ada setelah git init tidak ada perbedaan antara menggunakan perintah-perintah itu dalam skenario saya, kan?

Jawaban:


509

di bawah ini digunakan untuk menambahkan remote baru:

git remote add origin git@github.com:User/UserRepo.git

di bawah ini digunakan untuk mengubah url dari repositori jarak jauh yang ada:

git remote set-url origin git@github.com:User/UserRepo.git

di bawah ini akan mendorong kode Anda ke cabang master dari repositori jarak jauh yang ditentukan dengan origindan -umembiarkan Anda mengarahkan cabang lokal Anda saat ini ke cabang master jarak jauh:

git push -u origin master

Dokumentasi


jika saya mengkloning dari A ke lokal saya dan kemudian menggunakan "git remote set-url B". apakah itu akan menghapus repositori dalam A? Saya mencoba untuk mengkloning repositori dari kode AWS ke GitLab
Josh

biasanya ketika saya forking repo baru, saya membuat kesalahan dan mengatur asal ke hulu. Akhirnya perlu untuk memperbaikinya menggunakan perintah 2git remote set-url origin git@github.com:User/UserRepo.git
Honey

-u membiarkan Anda mengarahkan cabang lokal Anda saat ini ke cabang master jarak jauh saya tidak mengerti mengapa saya ingin melakukan itu. Maksud saya katakanlah saya menarik dari master, membuat featureBranch baru ... melakukan perubahan saya dan kemudian mendorong perubahan saya ke origin / featureBranch dan kemudian saya menggabungkan / menarik fitur itu ke master saya. <- saat ini saya belum selesai dengan featureBranch saya? Mengapa saya membutuhkannya untuk menunjuk ke cabang master jarak jauh? Bukankah saya harus checkout ke master / lokal dan kemudian menarik dari asal terbaru?
Sayang

Jawabannya sangat bagus, kecuali penjelasan tentang -ubendera, yang menurut saya, menyesatkan. Untuk penjelasan tentang -uflag, saya akan merekomendasikan untuk melihat thread ini stackoverflow.com/questions/18867824/…
hoang tran

dan -u membiarkan Anda mengarahkan cabang lokal Anda saat ini ke cabang master jarak jauh: Saya tidak mengerti baris ini ... Apa maksud Anda?
Hujan

62
  • Ketika Anda menjalankan git remote add origin git@github.com:User/UserRepo.git, maka remote yang baru dibuat bernama origin.
  • Ketika Anda menjalankan git remote set-url origin git@github.com:User/UserRepo.git, git mencari remote yang memiliki nama origindan mengubahnya url repositori jarak jauh itu. Jika git tidak dapat menemukan nama yang memiliki remote origin, itu memunculkan kesalahan fatal: No such remote 'origin'.

Jika Anda akan membuat repositori baru kemudian gunakan git remote add origin git@github.com:User/UserRepo.gituntuk menambahkan jarak jauh.


Silakan lihat Edit1
Irbis

git inittidak menambahkan asal apa pun. Hanya repositori git yang akan diinisialisasi. Jika Anda mengkloning repositori yang ada maka ia memiliki asal yang jauh. Rekomendasi digunakan git add, setelah git inittidak set-url.
Ram

@ Ram Jelas tidak memanggil set-url setelah git init karena tidak masuk akal. set-url adalah untuk mengubah dan menambah adalah menambahkan remote baru.
Santosh

61

Di bawah ini akan menginisialisasi ulang repo lokal Anda; juga menghapus repo jarak jauh (yaitu asal):

git init

Kemudian di bawah ini, akan membuat 'asal' jika tidak ada:

git remote add origin [repo-url]

Selain itu, Anda dapat menggunakan set-urlsub perintah untuk mengedit remote yang ada:

git remote set-url origin [repo-url]

Anda juga dapat memeriksa remote yang ada dengan

git remote -v

Semoga ini membantu!


1
git remote set-url origin ...pada repo baru init akan membuat saya pesan fatal: Tidak ada 'asal' jarak jauh. git remote add origin ...bekerja.
Robb Vandaveer

@RobbVandaveer Terima kasih atas tangkapannya! Saya memperbarui jawaban untuk penggunaan subset-url
perintah yang benar

32

git remote add=> ADDS remote baru.

git remote set-url=> MEMPERBARUI remote yang ada.


  1. Nama jarak jauh yang datang setelah addadalah nama jarak jauh baru yang tidak ada sebelum perintah itu.
  2. Nama jarak jauh yang datang setelah set-urlharus sudah ada sebagai nama jarak jauh ke repositori Anda.

git remote add myupstream someurl => nama jarak jauh myupstream tidak ada sekarang membuatnya dengan perintah ini.

git remote set-url upstream someurl => nama remote upstream sudah ada saya hanya mengubah url itu.


git remote add myupstream https://github.com/nodejs/node => **ADD** If you don't already have upstream
git remote set-url upstream https://github.com/nodejs/node # => **UPDATE** url for upstream

30

Untuk menambahkan remote baru, gunakan git remote add perintah pada terminal, di direktori tempat penyimpanan Anda.

Itu git remote set-url perintah perubahan URL repositori jauh yang ada.

Jadi pada dasarnya, remote addadalah menambahkan yang baru, remote set-urladalah memperbarui yang sudah ada


28

1. git remote add origin git@github.com:User/UserRepo.git

  • Perintah ini adalah langkah kedua dalam seri perintah setelah Anda menginisialisasi git ke dalam repositori Anda saat ini menggunakan git init.
  • Perintah ini berarti "Anda menambahkan lokasi repositori jarak jauh tempat Anda ingin mendorong / menarik file Anda ke / dari !! .."
  • Repositori jarak jauh Anda bisa di mana saja di github, gitlab, bitbucket, dll.
  • Berikut originini adalah nama alias / alternatif untuk repositori jarak jauh Anda sehingga Anda tidak perlu mengetikkan seluruh path untuk remote setiap saat dan selanjutnya Anda menyatakan bahwa Anda akan menggunakan nama (asal) ini untuk merujuk ke remote Anda. Nama ini bisa apa saja.
  • Untuk memverifikasi bahwa remote diatur dengan benar ketik: git remote -v

    ATAU git remote get-url origin

2. git remote set-url origin git@github.com:User/UserRepo.git

Perintah ini berarti bahwa jika secara tidak sengaja Anda mendorong ke repositori yang salah saat pertama kali, Anda dapat "mengatur ulang jalur repositori jarak jauh Anda" dengan menggunakan perintah di atas.

3. git push -u remote master

Perintah ini hanya mendorong file Anda ke repositori jarak jauh. Get memiliki konsep sesuatu yang dikenal sebagai "cabang" , jadi secara default semuanya didorong ke master cabang kecuali ditentukan secara eksplisit cabang alternatif.

Untuk mengetahui tentang daftar semua cabang yang Anda miliki di tipe repositori Anda:git branch


10

Coba ini:

git init  
git remote add origin your_repo.git  
git remote -v  
git status  

7

Anda tidak dapat memanggil remote set-url originsetelahgit init , Karena git remote set-urlperintah tidak akan membuat asal, tetapi itu mengubah URL repositori jarak jauh yang ada .

jadi perintah git remote set-urlhanya akan berfungsi jika Anda sudah mengkloning repositori atau secara manual menambahkan asal yang disebut remote.

Anda dapat memeriksa remote dengan perintah git remote -vitu akan menampilkan url jauh setelah nama, atau jika perintah ini memberikan kesalahan seperti fatal: Not a git repository (or any of the parent directories): .gitmaka repositori tidak ada, jadi Anda harus menambahkan asal dengan perintahgit remote add

1. git remote add

Perintah ini digunakan untuk menambahkan remote baru, Anda dapat menggunakan perintah ini di terminal, di direktori repositori Anda.

Perintah add remote git mengambil dua argumen:

  1. Sebuah nama terpencil , misalnya, asal
  2. Sebuah URL jarak jauh , misalnya, https://github.com/user/repo.git

Sebagai contoh:

git remote add origin https://github.com/user/repo.git

2.git remote set-url

Perintah set-url remote git mengubah URL repositori jarak jauh yang ada.

Perintah set-url git remote mengambil dua argumen:

  1. Sebuah nama terpencil yang ada . Misalnya, originatau upstreamdua pilihan umum.
  2. Sebuah URL baru untuk remote

Misalnya Anda dapat mengubah URL jarak jauh Anda dari SSH ke HTTPS dengan git remote set-urlperintah.

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

Anda dapat memverifikasi bahwa URL jarak jauh telah berubah, dengan perintah git remote -v.

catatan: "asal" adalah konvensi bukan bagian dari perintah. "origin" adalah nama lokal repositori jarak jauh. Anda dapat menggunakan nama apa pun alih-alih "asal".

Sebagai contoh:

git remote add myorigin git@github.com:user/repo.git
git remote set-url myorigin https://github.com/user/repo.git

Referensi dari github: add jarak jauh , set-url jarak jauh


0

jika Anda memiliki proyek yang ada dan Anda ingin menambahkan url repositori jarak jauh maka Anda perlu melakukan perintah berikut

git init

jika Anda ingin menambahkan file readme.md maka Anda dapat membuatnya dan menambahkannya menggunakan perintah di bawah ini.

git add README.md

buat komit pertama Anda menggunakan perintah di bawah ini

git commit -m "first commit"

Sekarang Anda menyelesaikan semua proses repositori lokal, sekarang bagaimana Anda menambahkan url repositori jarak jauh? periksa perintah di bawah ini untuk ssh url, Anda dapat mengubahnya untuk https.

git remote add origin git@github.com:user-name/repository-name.git

Cara Anda menekan komit pertama Anda, lihat perintah di bawah ini :

git push -u origin master
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.