Ini adalah bagaimana anda berkongsi kerja anda di repositori terpencil git



Bagikan karya tempatan anda dengan pasukan di repositori jauh, juga belajar menguruskannya sambil mengesan perubahan dan tetap mengikuti perkembangan.

Hasil kerja anda menambah nilai apabila diterbitkan dan dikongsi dengan dunia (atau pasukan anda) !!!

Bermula

Pergi , seperti yang anda tahu, adalah alat versi yang paling popular yang digunakan sekarang kedai , trek dan versi apa-apa jenis data .
Beberapa ciri utama git adalah kepantasan , diedarkan alam semula jadi, keselamatan , tidak menyakitkan bercabang dan bergabung bersama dengan bekerjasama bekerja di antara pelbagai penyumbang.

Memulakan perbincangan kami dari sini, mari kita fokus pada bagaimana git membantu anda bekerjasama dan kongsi kerja anda dengan rakan sebaya supaya semua orang dapat menggunakan kod yang sama secara serentak tanpa merosakkan data antara satu sama lain.
Di sinilah konsep repositori terpencil masuk ke dalam gambar.
Saya menganggap bahawa anda telah menguasai seni dari anda direktori kerja (sistem fail) ke Kawasan pementasan dan akhirnya memberikannya kepada anda repositori tempatan (pangkalan data).

Ini memberi inspirasi kepada kami untuk mendorong data kami ke tingkat berikutnya 'Remote repo' untuk menerbitkannya di repositori jarak jauh.

Bukankah data saya sudah disimpan dalam pangkalan data git?

Ya betul! Namun, seperti yang ditunjukkan dalam rajah di bawah data Anda masih ada di pangkalan data tempatan selepas anda komited dan belum dikongsi dengan rakan sekerja anda.
Senibina 4 peringkat
Artikel ini mengisi jurang antara pengambilan data kami dari data anda repositori tempatan dan membawanya ke lapisan seterusnya yang disebut repositori jauh .





Apa itu repositori jauh

Pangkalan data maklumat yang dikumpulkan disimpan di lokasi yang boleh dikongsi dengan rakan sepasukan anda dengan memberi mereka akses .
Ia dianjurkan secara ideal di awan atau pada a pelayan (tempatan atau jauh) di internet atau rangkaian tempatan anda.
Sebuah repositori jauh sama seperti git repositori tempatan anda, kecuali bahawa ia biasanya dinyatakan sebagai repositori kosong sehingga tidak mempunyai salinan yang berfungsi seperti yang setempat.
Ini dilakukan untuk menyekat perubahan langsung yang dibuat di repositori jauh.

Repositori telanjang konsep adalah kelebihan tambahan untuk repositori jauh untuk menyimpannya dilindungi dan digunakan untuk tujuan utamanya berkongsi kod di antara ahli pasukan.
Ini dicapai dengan menyatakan repositori jauh sebagai telanjang dengan menggunakan ‘- betul'Bendera pada masa memulakannya sebagai git repositori.
Dengan berbuat demikian, repo anda dibuat dengan metadata git atau dengan kata lain objek git disimpan di bawah direktori ‘.git’ yang tersembunyi sahaja dan tidak ada salinan kerja yang tersedia untuk sesiapa sahaja untuk menambahkan data secara langsung.
Perintah:git init - telanjang.

Dengan ini, kita akan melihat lebih banyak cara untuk menguruskan repo jauh dan bagaimana kita menyelaraskan kerja tempatan kita dengan alat kawalan jauh.



Buat repositori jauh

Pertama sekali, anda perlu memutuskan lokasi yang anda mahu letakkan repo jauh anda.
Terdapat beberapa repositori hosting git berasaskan awan yang popular seperti - GitLab , BitBucket , GitHub , Berlubang dan CloudForge untuk menamakan beberapa.
Dalam catatan ini, saya mempertimbangkan GitHub kerana inilah tempat pertama kali saya mula menyimpan git repositori saya. Untuk memulakan, yang perlu anda lakukan ialah log masuk ke akaun GitHub dan kemudian buat repositori baru , ini membuat URL yang menunjuk ke repo jauh ini.


Git menyokong protokol ssh, git, http dan https untuk mengatasi URL repositori.

Sebagai alternatif, anda juga boleh meletakkan projek anda di tempat lain seperti Pelayan Linux mengikuti arahan di bawah-
cd $ RUMAH
mkdir remote_repo
cd remote_repo
git init - telanjang.

Pasang alat kawalan jauh ke mesin tempatan anda

Melampirkan alat kawalan jauh ke salinan kerja anda bermaksud membuat a penangan rujukan penunjuk untuk alat kawalan jauh atau dipanggil ' pengendali jarak jauh '.
Mari beralih ke projek saya yang ingin saya terbitkan-cd belajarRemotes
Sintaks:git tambah jauh
Perintah:git remote add origin https://github.com/divyabhushan/learnRemotes.git

'Asal adalah lalai nama rujukan untuk pengendali jarak jauh. ' (nama terpencil mestilah beberapa nama yang relevan)
Mari kita lihat apakah itu berfungsi, menggunakan arahan:git jauh

Ia :)

Cetak URL jauh juga dengan nama:
git jauh -v

Bagus! Anda sudah siap dengan membuat sambungan ke repositori jauh anda dari direktori kerja tempatan anda.

hantar dua kali ke int java

Masa untuk Menerbitkan

Sintaks:git push --all --tag[-u | --set-ke hulu]
Perintah:master asal git push

Jadi, anda membaca ini sebagai 'Tolak perbezaan komitmen yang berasal dari tuan tempatan' .

Sekiranya anda memeriksa akaun GitHub anda, komit (data) tempatan anda mesti dipaparkan di sana-



Menjejaki Cawangan

Oleh itu, anda berjaya menerbitkan karya anda di repositori jauh.
Walau bagaimanapun, penting untuk anda menubuhkan cawangan tempatan anda trek perubahan pada cawangan jauh secara automatik.
Menggunakan '--set ke huluatau-u‘Flag bersama dengan arahan‘ git push ’
Perintah:tuan asal git push -u

cawangan berkod warna


Mari buat lagi komitmen baru di cabang ‘master’ dan sahkan bagaimana git mengesannya-
Perintah:status git


Tunjukkan cabang penjejakan dalam mod verbose
Perintah:cawangan git -vv


Oleh itu, setiap masa, terdapat perbezaan dalam melakukan antara repositori tempatan dan jauh anda di cawangan yang dilacak, Git akan memberitahu anda.
Tidak keren !!!

Bagaimana orang lain akan menyambung ke alat kawalan jauh anda?

Ia adalah sebiji kek semasa anda klon repositori jauh !!!

Jadi, pengklonan dari repositori jauh melakukan 2 perkara pertama, anda rujukan jarak jauh ditambahkan secara automatik, dan lalai kedua cawangan ditetapkan ke trek cawangan terpencil secara automatik.

Langkah 1: Klon repo jauh anda sebagai pengguna yang berbeza-
Perintah:git clone https://github.com/divyabhushan/learnRemotes.git pemaju2
pemaju cd2

Langkah 2: Tunjukkan alat kawalan jauh dan urlnya
Perintah:git jauh -v


Langkah 3: Senaraikan cabang penjejakan
Perintah:cawangan git -vv


Keseronokan bermula apabila ‘developer2’ akan memulakan kerja sendiri dan mendorong ke alat kawalan jauh.

Anda boleh berhubung dan menyumbang kepada lebih daripada satu alat kawalan jauh repositori dari a projek tunggal .

Lihat cawangan terpencil

Perintah:cawangan git -r


Gunakan pilihan ‘-a’ untuk mencetak cawangan tempatan dan jarak jauh, cubalah di repo tempatan anda setelah membuat beberapa cawangan tempatan.

Bagaimana orang lain menyumbang pada alat kawalan jauh anda?

Persediaan awal
Pembangun2 memutuskan untuk menukar beberapa perkara seperti:
ke. Buat 'ciri' baru dari komit terbaru di cabang 'master' dan buat a komit baru di cawangan 'ciri'
Perintah:
ciri git checkout -b
echo 'penambahbaikan ciri'> feature.txt
git tambah. && git komit -m 'peningkatan ciri'

b. Buat cabang ‘feature2’ yang berbeza dari komitmen lama pada cabang ‘master’
Perintah:
git checkout -b feature2 95651fb
echo 'feature2 added'> feature2.txt
git tambah. && git komit -m 'Menambah perubahan ciri2'

Mari kita gambarkan cawangan pada mesin developer2 bersama dengan maklumat penjejakan:

Seperti yang anda perhatikan, cawangan baru tidak disediakan untuk mengesan cawangan terpencil.

Mendorong perubahan ke jarak jauh
Mula-mula izinkan saya menolak cawangan ‘ciri’ ke jauh dengan bendera ‘–set-upstream atau -u’
Perintah:ciri asal git push -u




Cabang baru akan dibuat di alat kawalan jauh, jika belum ada !!!

Buat masa ini, senaraikan cawangan terpencil dengan arahan: 'git branch -r'




Kaedah lain untuk mengesan cawangan terpencil
Selain itu, mari kita tetapkan cabang ‘feature2’ untuk menunjuk ke cabang ‘feature’ yang sama di alat kawalan jauh
Perintah:cawangan git --set-upstream-to = asal / ciri ciri2



cabang berkod warna


Petua ringkas: Anda boleh menghilangkan nama cawangan tempatan jika anda sudah berada di cawangan itu, dengan kata lain, cawangan tempatan sudah dilapor keluar.

Senaraikan cawangan dalam mod verbose sekali lagi, perintah:cawangan git -vv



Perhatikan, kedua-dua cawangan tempatan 'ciri' dan 'ciri2' menunjuk ke 'ciri' cawangan jauh yang sama.

Tetap selaras dengan alat kawalan jauh - ambil, tarik dan tolak

Mari kita pertimbangkan bahagian di mana cawangan terpencil anda mengesan sudah dikemas kini, lalu bagaimana?
Yang mudah 'status git'Atau'git checkout'Atau bahkan'cawangan git -vv'Perintah memberi amaran kepada kita dengan ketidakcocokan-

bagaimana memulakan aws cli



‘Developer2’ mesti mengemas kini rujukan dan objek tempatan terlebih dahulu (‘ ambil git ') Dan kemudian gabungkan perubahan jauh dan tempatan (' git merge ').
Menariknya, anda boleh mengganti dua perintah ini dengan satu perintah ‘git pull’.
Sintaks:pergi tarik

- untuk cawangan yang tidak dikesan
Sintaks: tarikan git [:]
Perintah:ciri asal tarik git: ciri2

- untuk cawangan yang dikesan
Sintaks: tarikan git
Perintah:tarik git




=> Dalam praktiknya, mungkin ada konflik yang timbul pada tahap ini ketika Anda menarik diri dari jarak jauh untuk kesederhanaan. Saya telah menghasilkan perubahan komitmen tanpa konflik.

Setelah ‘developer2’ menarik (mengambil dan menggabungkan) perubahan terkini yang jauh kini mesti menerbitkan karya sendiri-
Perintah:git push origin HEAD: ciri
Catatan: cawangan hulu 'ciri' tidak sepadan dengan nama 'ciri2' cawangan tempatan, anda harus memberikannya secara jelas



Peringatan : ‘HEAD’ adalah komitmen terbaru di cabang ‘feature2’ tempatan.

Bila hendak menggunakan 'git fetch'?
Kadang kala anda perlu mengemas kini kepala rujukan tanpa benar-benar memuat turun (menarik) dari alat kawalan jauh.
Atau apabila cawangan jarak jauh telah diubah / dipadam semasa dikemas kini, anda harus menjalankan perintah pengambilan dengan ‘--jimat'Pilihan.
Sebagai amalan terbaik, anda mesti menjalankan perintah 'git fetch' setiap kali anda mula bekerja di repo tempatan anda.

Pengurusan Jauh

Akhir sekali, anda ingin menjalankan beberapa tugas pengemasan seperti menamakan semula atau membuang barang dan cawangan.
Ini sama pentingnya dengan arahan sebelumnya.

apakah objek pengimbas

Ganti nama jauh

Sintaks:git ganti nama jauh
Perintah:git remote namakan semula snv_repo svn
Sebagai contoh, pertimbangkan pengurus projek yang berkaitan dengan 3 projek-


Padamkan rujukan jarak jauh

Sekiranya anda tidak lagi menyegerakkan dengan repositori jauh, anda mungkin akan memadamkan rujukan penunjuk kepadanya.
Walau bagaimanapun, ini tidak akan menjejaskan repositori jauh dan kerja orang lain.

Sintaks:git mengeluarkan jauh
Perintah:git remote remove proj1


Bagaimana jika anda mempunyai cawangan tempatan untuk mengesan cawangan dari repositori ‘proj1’ yang dikeluarkan?
Baiklah, anda cawangan tempatan (dan oleh itu karya) adalah selamat dan masih ada, hanya itu rujukan penjejakan jarak jauh dan konfigurasi tetapan akan dikeluarkan secara automatik

Padamkan cawangan jauh

Katakanlah anda secara tidak sengaja menolak anda peribadi kerja kasar pada a cawangan ke jauh tetapi tidak mahu orang lain menyemaknya -
Keluarkan cawangan ‘unfinishedWork’ dari alat kawalan jauh ‘svn’-
Perintah:cawangan git -vv#Senaraikan cawangan pengesanan jarak jauh



Sintaks:git push --hapus
Perintah:git push --hapus svn belum selesaiBekerja


Penggulungan

Dengan ini, kita akan mengakhiri artikel ini. Sekiranya anda menjumpai ini ' Tutorial 'Relevan, lihat oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Kursus Latihan Persijilan Edureka DevOps membantu pelajar memperoleh kepakaran dalam pelbagai proses dan alat DevOps seperti Boneka, Jenkins, Nagios dan GIT untuk mengautomasikan beberapa langkah dalam SDLC.