GNU/Linux >> Belajar Linux >  >> Linux

Cara:Apa itu Git dan Github? Bagaimana cara menggunakannya dan mengapa saya harus peduli?

Git dibuat oleh Linus Torvalds pada tahun 2005, awalnya sebagai perangkat lunak kontrol versi untuk memungkinkan kontributor mengunggah kode ke kernel Linux dengan lebih baik. Git adalah sistem kontrol versi. Kadang-kadang disebut sebagai sistem SCM (manajemen kontrol sumber).

Sejak itu penggunaannya telah jauh melampaui ekosistem Linux dan digunakan oleh jutaan pengembang perangkat lunak di seluruh dunia (42,9% dari semua pengembang perangkat lunak menggunakannya di atas sistem kontrol versi lainnya). Ini tidak hanya untuk pengembang perangkat lunak, joe biasa yang ingin berbagi atau menyimpan sesuatu, misalnya, file konfigurasi atau situs web. Git memungkinkan mereka untuk memiliki tempat di mana mereka dapat menyimpan (dan yang lebih penting, berkolaborasi – atau bergabung ) konten mereka.

Apa sebenarnya fungsinya, dalam istilah awam?

Berikut adalah dua alasan utama mengapa Anda ingin menggunakan Git:

  • Kolaborasi :Anda ingin berkolaborasi pada beberapa file – misalnya seorang pengembang menulis satu baris kode, dan pengembang lain menulis dua baris kode. Ini bisa 'digabung' kembali ke 'git server', sehingga menjadi satu file.
  • Kontrol/pelacakan versi :Anda ingin dapat melacak perubahan yang telah dibuat oleh kontributor lain. Kemampuan pelacakan akan memungkinkan Anda melihat apakah ada kesalahan yang perlu diperbaiki.

Alasan lain adalah jika Anda berada dalam pekerjaan yang melibatkan pengembangan aplikasi dengan cara apa pun (misalnya, jika Anda seorang pembuat kode, atau jika Anda adalah administrator sistem yang perlu membuat revisi data manajemen konfigurasi Anda, atau hanya mengkloning kode pengembang ) – menggunakan Git adalah sistem kontrol versi yang diterima secara umum saat ini. Tidak mengetahui cara menggunakannya kemungkinan akan menempatkan Anda pada kerugian karir.

Git vs Github

Sebuah Git server  dapat diinstal pada server Linux apa pun. Mengaksesnya biasanya memerlukan penggunaan git klien , yang merupakan alat baris perintah. Lebih lanjut tentang itu di bagian bawah.

Github adalah layanan Git publik berbasis web yang banyak digunakan bagi orang-orang untuk mengerjakan proyek di seluruh Internet. Itu tidak berafiliasi dengan Linus Torvalds atau orang-orang proyek git mana pun, ini adalah adaptasi berbasis web dari server git. Ini memanfaatkan semua komponen utama git, dan menawarkan ekstensibilitas lebih lanjut melalui antarmuka webnya. Manfaat utama github adalah ini adalah repositori git publik yang masih dapat Anda sambungkan melalui klien git biasa. Github juga menawarkan layanan penyimpanan pribadi, namun ini berbayar.

Produk komersial lainnya juga tersedia yang mengimplementasikan beberapa atau semua layanan git, seperti Atlassian Bitbucket.

Terminologi dan perintah penting

Perintah git client dimasukkan di terminal dan memiliki sejumlah opsi. Anda akan menemukan bahwa git mungkin sudah terinstal di mesin Linux Anda. Jika tidak, adalah hal yang pasti untuk mengharapkan bahwa itu hanya apt-get atau yum install.

Yang paling relevan dari mereka tercantum di bawah ini. Simpan ini berguna karena akan berguna sebagai cheat-sheet sementara Anda memulai dengan Git:

Perintah Deskripsi
kloning

Membuat salinan repositori git.

Misalnya, setiap kali Anda mengunduh sesuatu dari situs github/git (repositori), Anda akan menggunakan klon .
misalnya:git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git

init Menginisialisasi repositori Git kosong di direktori saat ini.
misalnya:git init /home/mycode
status

Menampilkan status repositori.

Anda akan sering melakukannya, sehingga Anda dapat melacak setiap perubahan pada repositori.
mis.:git status

tambahkan

Menambahkan file ke area staging, sehingga perubahan dapat dilacak secara lokal.

Memberitahu git untuk mulai melacak perubahan untuk file yang Anda tentukan. Perhatikan bahwa ini tidak mengkomitnya ke cabang, itu di area staging lokal, mis:

git add <filename>

Untuk menambahkan beberapa file/direktori, Anda perlu tanda kurung sekitar wildcard sehingga git mendapatkan daftar file sebelum shell beroperasi pada wildcard. Contoh ini menambahkan setiap file .jpg di semua direktori di bawah direktori saat ini (termasuk direktori saat ini):

git add '*.jpg'

berkomitmen

Melakukan perubahan bertahap (ditambahkan).

Untuk melakukan perubahan berarti “semua ini tambahkan Saya sudah selesai, bawa mereka keluar dari area pementasan dan komit ke repositori saya” . Ini wajib untuk berkomitmen dengan sebuah pesan. Pesan tersebut harus menjelaskan untuk apa komit itu, misalnya, Anda dapat mengatakan bahwa Anda telah menambahkan beberapa jpeg kucing.
git commit -m "info about this commit".

jauh

Konfigurasikan repositori jarak jauh untuk melakukan push commit.

Setiap perubahan yang Anda lakukan secara lokal dapat diunggah ke repositori jarak jauh. Github adalah repositori jarak jauh misalnya. Untuk menginisialisasi koneksi server git jarak jauh, Anda menggunakan git remote.

Misalnya: git remote add origin https://github.com/YOUR-USERNAME/your-repository.git

  • Nama (atau pegangan ) ‘asal’ digunakan sebagai referensi untuk repositori proyek jarak jauh. Anda dapat menamainya apa pun yang Anda suka, tetapi biasanya memberi nama 'asal' utama Anda.
  • your-repository.git file dibuat saat Anda melakukan git init.
dorong

Dorong perubahan yang dikomit ke repositori jarak jauh.

Setelah Anda menginisialisasi repositori jarak jauh, Anda dapat mendorong perubahan yang dilakukan dengan push:
git push -u origin master

  • 'origin' adalah nama yang Anda tentukan untuk koneksi jarak jauh.
  • 'master' adalah cabang yang disebut master (cabang utama. Lebih lanjut tentang ini sebentar lagi).
  • opsi -u memberi tahu git untuk mengingat parameter yang Anda tentukan, jadi Anda hanya perlu mengetik 'git push' di lain waktu.
tarik

Menggabungkan perubahan dari repositori jarak jauh dengan salinan lokal Anda.

Setelah orang (atau Anda) melakukan lebih banyak perubahan pada repositori, Anda ingin mengeluarkan pull request untuk menggabungkan perubahan yang Anda miliki secara lokal dengan repositori upstream (jarak jauh).

git pull origin master

berbeda

Menampilkan perbedaan yang ada pada repositori sejak komit terakhir.

Bila perubahan dilakukan ke repositori jarak jauh oleh lebih dari satu orang, akan ada perbedaan antara apa yang Anda simpan secara lokal dan apa yang ada di server jauh. Perbedaan ini disebut diff . Saat Anda melakukan tarik , ini akan memungkinkan Anda

Untuk melihat perbedaan antara komit terbaru dan komit yang ada di repositori jarak jauh, Anda dapat menggunakan penunjuk HEAD. HEAD hanyalah indikator posisi, secara default menunjuk ke komit baru-baru ini.

git diff HEAD

Output akan menunjukkan perbedaan antara salinan file yang diubah, vs salinan jarak jauh (penambahan dan pengurangan).

Untuk melihat perbedaan antara file dalam staging Anda (tambahkan ed) area dan file lokal di PC Anda, gunakan diff --staged

pembayaran

Kembali ke komit sebelumnya, atau pindah cabang.

Anggap saja Anda membuat komit file.txt yang Anda putuskan tidak bagus, dan Anda ingin kembali ke versi komit sebelumnya, Anda akan mengembalikannya seperti ini:

git checkout -- file.txt

  • The — hanya mengatakan bahwa tidak ada lagi opsi untuk operasi checkout.

Untuk mengubah cabang, tentukan nama cabang (daripada menggunakan — atau memberikan nama file untuk dikembalikan):

git checkout <branchname>

cabang

Membuat salinan (cabang) baru. Perintah juga menghapus atau mencantumkan cabang yang ada.

Untuk informasi lebih lanjut tentang apa itu 'cabang', lihat terminologi di bawah. Contoh di bawah membuat cabang baru yang disebut 'cabang baru':

git branch newbranch

Contoh di bawah ini menghapus ‘newbranch ‘:

git branch -d newbranch

rm

Menghapus file dari cabang saat ini, serta disk lokal.

Untuk menghapus semua file, gunakan rm sama seperti Anda menambahkan:

git rm '*.txt'

  • Jangan lupa untuk komit itu berubah setelah Anda mengeluarkan rm!
gabung

Menggabungkan satu cabang ke cabang lainnya.

Sebagai contoh praktis, melanjutkan dari rm contoh perintah di atas, mari kita asumsikan bahwa Anda melakukan rm *.txt dari cabang newbranch . Jika Anda ingin menggabungkan perubahan itu menjadi master cabang, pertama-tama Anda akan beralih kembali ke master cabang dengan mengeluarkan git checkout master,   kemudian gunakan perintah merge untuk menggabungkan perbedaan dari cabang baru kembali ke cabang saat ini (master ). Sebagian besar tim pengembang akan mengerjakan kode mereka di cabang terpisah sebelum menggabungkannya ke cabang master di penghujung hari.

git merge newbranch

setel ulang

Mengembalikan (menghapus) semua perubahan bertahap.

Misalnya, jika Anda telah melakukan git add file.txt, tetapi sebelum Anda melakukan commit, Anda memutuskan bahwa file.txt tidak boleh di-commit, jalankan perintah reset, mis.:git reset file.txt

log

Tampilkan jurnal dari semua perubahan yang dilakukan.

Misalnya:git log

Terminologi

Beberapa terminologi yang perlu Anda pahami adalah:

    • Permintaan tarik – Saat tim mengerjakan perubahan kode, permintaan tarik digunakan untuk memberi sinyal kepada pengelola repositori untuk menggabungkan perubahan baru.
    • Cabang – Cabang hanyalah salinan dari repositori yang ada. Secara default, setiap repositori dimulai dengan 'Master ' cabang. Master adalah nama cabang utama.
      • Cabang master biasanya bukan cabang yang berfungsi, sering digunakan sebagai cabang ketika semua pengembang telah menyelesaikan (mengkomit) kode mereka. Kemudian digabungkan ke dalamnya pada akhir hari dari cabang kerja lainnya.
    • Fork – Garpu adalah salinan duplikat dari repositori seseorang. Ini memungkinkan Anda untuk membuat perubahan apa pun yang Anda inginkan pada kode tanpa memengaruhi proyek/repositori asli. Ini digunakan baik untuk membuat aplikasi baru dari basis kode asli, atau sebagai awal yang berfungsi untuk memungkinkan pengembang mengusulkan perubahan pada proyek.
    • Staging – Saat file ditambahkan (dengan git add) dikatakan dipentaskan, atau dalam proses pementasan. Saat Anda melakukan perubahan, itu tidak lagi dipentaskan.
      • Staging diadakan di mesin lokal Anda, bukan di repositori jarak jauh.
      • Dalam contoh praktis, katakanlah Anda memiliki banyak file yang berada di repo jarak jauh

Lihat juga

Halaman manual bawaan yang disebut 'gittutorial' adalah tutorial yang ditulis dengan baik yang memandu Anda melalui seluk beluk penggunaan Git. Untuk melihatnya, masukkan perintah berikut:

man 7 gittutorial

Tautan web berikut sangat disarankan:

      • Tutorial interaktif (trygit)
      • Situs web resmi
      • situs web github

Linux
  1. Apa itu Perintah Chown di Linux dan Cara Menggunakannya

  2. Apa itu Perintah cURL Dan Bagaimana Cara Menggunakannya?

  3. Chroot “jail” – Apa Itu Dan Bagaimana Cara Menggunakannya?

  1. Kapan Dan Mengapa Saya Harus Menggunakan Pembaruan Apt-get?

  2. Apa itu Kurasi Konten dan bagaimana cara melakukannya?

  3. Mengapa eval harus dihindari di Bash, dan apa yang harus saya gunakan?

  1. Apa itu chroot jail dan Bagaimana Cara Menggunakannya?

  2. Perintah File Linux:Apa Fungsinya dan Bagaimana Cara Menggunakannya

  3. Redis sebagai Cache:Cara Kerja dan Mengapa Menggunakannya