Wiki

Clone wiki

Python-UVT-Git / Home

Selamat Datang di Bagian Pertama Belajar Git

Jika Anda pengguna Linux, kemungkinan Anda sudah mendengar tentang Git. Git menurut situs image didefinisikan sebagai berikut:

Git adalah sistem kontrol sumber terbuka yang dirancang untuk menangani proyek yang sangat besar dengan cepat dan efisien, tetapi juga cocok untuk repositori pribadi. Git sangat populer di komunitas sumber terbuka karena melayani berbagai proyek pengembangan utama, seperti Kernel Linux, Ruby on Rails, WINE, GNOME, KDE, X.org, dan sebagainya.

Git termasuk dalam kategori perangkat manajemen kode sumber terdistribusi, seperti halnya Mercurial atau Bazaar. Setiap direktori kerja Git adalah repositori penuh dengan catatan lengkap dan kemampuan pelacakan revisi tanpa tergantung pada akses jaringan atau server pusat. Namun, Git tetap sangat cepat dan efisien.

Git adalah proyek sumber terbuka yang dilindungi GNU General Public License. Git pada awalnya ditulis Linus Torvalds dan saat ini dikelola Juni C. Hamano.

Kawan-kawan saya di image juga menggunakan Git dalam proyek mereka. Saya sendiri telah memutuskan untuk mulai belajar menggunakan Git. Jadi, mengapa tidak bergabung dengan saya dalam belajar Git? Saya akan menulis tentang pelajaran Git ini sambil berpraktik.

Asumsi

Meskipun langkah-langkah dalam pelajaran ini sangat mirip untuk setiap distribusi Linux, saya hanya akan mempraktikkannya di Debian sebagai distro Linux saya. Jadi, mari kita mulai.

Langkah 1: Memasang Git

Pertama mari kita instal paket inti Git.

raviyanto@uvt:$ sudo apt-get update
raviyanto@uvt:$ sudo apt-get install git-core

Langkah 2: Mengonfigurasi Nama dan E-mail Anda

Untuk setiap pemberlakuan berkas yang kita buat ketika menggunakan Git, nama dan alamat e-mail harus ditentukan sehingga orang yang melakukan perubahan kode dapat diidentifikasi. Jadi, pekerjaan pertama kita setelah menginstal Git adalah mengonfigurasi nama dan alamat e-mail dengan memberikan perintah berikut:

raviyanto@uvt:~$ git config --global user.name "Raviyanto Ahmad"
raviyanto@uvt:~$ git config --global user.email raviyanto@gmail.com
raviyanto@uvt:~$ git config --global credential.helper 'cache --timeout=3600'
raviyanto@uvt:~$ git config --global core.editor 'nano'
raviyanto@uvt:~$ git config --global color.ui true

<Sesuaikan dengan nama dan e-mail Anda>

Anda dapat memverifikasi apakah nama dan alamat e-mail tersebut terdaftar atau tidak dengan memberikan perintah berikut:

raviyanto@uvt:~$ git config -l
user.name=Raviyanto Ahmad
user.email=raviyanto@gmail.com
credential.helper=cache --timeout=3600
core.editor=nano
color.ui=true

Langkah 3: Menyiapkan Direktori Proyek

Di sini kita akan membuat repositori Git berdasarkan proyek yang sudah saya buat.

raviyanto@uvt:$ git clone https://github.com/UVT/Python-UVT-Git.git

Jadi, direktori Python-UVT-Git akan menjadi repositori Git. Dalam direktori ini terdapat berkas-berkas kode sumber proyek ini.

raviyanto@uvt:~$ cd Python-UVT-Git/

Mari kita lihat berkas-berkas yang ada di direktori Python-UVT-Git:

raviyanto@uvt:~/Python-UVT-Git$ ls -al
total 48
drwxr-xr-x 10 raviyanto raviyanto 4096 Feb 13 20:28 .
drwxr-xr-x 62 raviyanto raviyanto 4096 Feb 13 20:27 ..
drwxrwxr-x  8 raviyanto raviyanto 4096 Feb 13 20:28 .git
-rw-rw-r--  1 raviyanto raviyanto   13 Feb 13 20:28 .gitignore
drwxrwxr-x  2 raviyanto raviyanto 4096 Feb 13 20:28 Latihan1
drwxrwxr-x  3 raviyanto raviyanto 4096 Feb 13 20:28 Latihan2
drwxrwxr-x  3 raviyanto raviyanto 4096 Feb 13 20:28 Latihan3
drwxrwxr-x  2 raviyanto raviyanto 4096 Feb 13 20:28 Latihan4
drwxrwxr-x  2 raviyanto raviyanto 4096 Feb 13 20:28 Latihan5
drwxrwxr-x  2 raviyanto raviyanto 4096 Feb 13 20:28 Latihan6
-rw-rw-r--  1 raviyanto raviyanto   73 Feb 13 20:28 README.md
drwxrwxr-x  2 raviyanto raviyanto 4096 Feb 13 20:28 Tugas

Mari kita lihat juga berkas-berkas apa saja yang ada di direktori .git.

raviyanto@uvt:~/Python-UVT-Git$ cd .git
raviyanto@uvt:~/Python-UVT-Git/.git$ ls -al
total 56
drwxrwxr-x  8 raviyanto raviyanto 4096 Feb 13 20:28 .
drwxr-xr-x 10 raviyanto raviyanto 4096 Feb 13 20:28 ..
drwxrwxr-x  2 raviyanto raviyanto 4096 Feb 13 20:27 branches
-rw-rw-r--  1 raviyanto raviyanto  266 Feb 13 20:28 config
-rw-rw-r--  1 raviyanto raviyanto   73 Feb 13 20:27 description
-rw-rw-r--  1 raviyanto raviyanto   23 Feb 13 20:28 HEAD
drwxrwxr-x  2 raviyanto raviyanto 4096 Feb 13 20:27 hooks
-rw-rw-r--  1 raviyanto raviyanto 5968 Feb 13 20:28 index
drwxrwxr-x  2 raviyanto raviyanto 4096 Feb 13 20:27 info
drwxrwxr-x  3 raviyanto raviyanto 4096 Feb 13 20:28 logs
drwxrwxr-x  4 raviyanto raviyanto 4096 Feb 13 20:27 objects
-rw-rw-r--  1 raviyanto raviyanto  164 Feb 13 20:28 packed-refs
drwxrwxr-x  5 raviyanto raviyanto 4096 Feb 13 20:28 refs

Dalam direktori itu terdapat berkas-berkas meta yang berisi informasi tentang proyek tersebut.

Sekarang mari kita tambahkan kata-kata (nama) dalam salah satu berkas kode sumber yang ada di direktori Python-UVT-Git.

raviyanto@uvt:~/Python-UVT-Git$ cd Latihan6
raviyanto@uvt:~/Python-UVT-Git/Latihan6$ nano termpad.py 

__author__ = "Khadis Thok, Raviyanto"
__copyright__ = "Copyright 2013, Python-UVT"
__credist__ = ["Arif", "Rais", "Firdaus", "Samudera", "Dayat"]
__license__ = "GPL"
__version__ = "1.0.1"
__maintainer__ = "Raviyanto"
__email__ = "raviyanto@gmail.com"
__status__ = "Development"

(Simpan dengan CTRL O dan CTRL X)

Langkah 4: Menambahkan Berkas Anda

Kita perlu secara eksplisit menambahkan berkas hasil perubahan untuk memberitahu Git memulai pelacakan:

raviyanto@uvt:~/Python-UVT-Git$ git add Latihan6/termpad.py

Jika Anda memberikan perintah:

raviyanto@uvt:~/Python-UVT-Git$ git status
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   Latihan6/termpad.py
#

Perintah tersebut memberitahu Anda bahwa berkas termpad.py telah ditambahkan, tetapi belum diberlakukan.

Langkah 5: Memberlakukan Berkas

Mari kita memberlakukan berkas tersebut.

raviyanto@uvt:~/Python-UVT-Git$ git commit -a -m "Ubah isi berkas termpad.py"
[master e2b3041] Ubah isi berkas termpad.py
 1 file changed, 10 insertions(+), 1 deletion(-)

Hasil di atas menegaskan bahwa pemberlakuan berkas Anda telah berhasil. Opsi "-m" adalah pesan singkat yang ingin Anda lampirkan pada pemberlakuan berkas. Perhatikan bahwa Anda harus memberikan pesan pada setiap pemberlakuan yang Anda buat. JANGAN mencoba melewati bagian pesan ini. Selain itu, memiliki satu baris pesan pemberlakuan berkas sangat berguna bagi kita saat hendak melihat perubahan apa yang dibuat dan mengapa.

Selamat atas permberlakuan berkas Anda!

Sekarang jika Anda memberikan perintah:

raviyanto@uvt:~/Python-UVT-Git$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)

Ini akan memberitahu Anda bahwa tidak ada pemberlakuan berkas lagi. Artinya, berkas Anda sudah yang paling baru.

Langkah 6: Memeriksa Catatan Pemberlakuan

Anda juga dapat melihat catatan pemberlakuan Anda dengan memberikan perintah berikut:

raviyanto@uvt:~/Python-UVT-Git$ git log
commit e2b304130722109b4ecbc702397116da6b0867a1
Author: Raviyanto Ahmad <raviyanto@gmail.com>
Date:   Wed Feb 13 23:41:09 2013 +0700

    Ubah isi berkas termpad.py

commit a63cac3daa10602e55e20dbb410d6ac3ca250d5c
Author: Raviyanto Ahmad <raviyanto@gmail.com>
Date:   Wed Feb 6 00:40:11 2013 +0700

    Ubah url Latihan

commit 263ac540c5d40519d885a114761358440204dd06
Author: Raviyanto Ahmad <raviyanto@gmail.com>
Date:   Wed Feb 6 00:20:56 2013 +0700

    Mengubah P menjadi Latihan

commit ec8136d77a69dcf3ae6ea3fd9c25bb50ef21a36a
Author: Raviyanto Ahmad <raviyanto@gmail.com>
Date:   Tue Feb 5 02:51:12 2013 +0700

    Update termpad.py

    change ">" with "awal"

commit e702e2fe6de11b6e418b5a2e6c9cc60eb80e6861
Author: Raviyanto Ahmad <raviyanto@gmail.com>
Date:   Mon Feb 4 11:47:14 2013 -0800

    Create README.md

    readme uvt

commit 87e1d321e9f442ed6252fb3b12529d5f5f4ca581
Author: Raviyanto Ahmad <raviyanto@gmail.com>
Date:   Mon Feb 4 11:21:20 2013 -0800

    Create termpad.py

    terminal pad

commit ff962e94af38712fb9ec7c6f9cb8ccefaa54a070
Author: Raviyanto Ahmad <raviyanto@gmail.com>
Date:   Tue Feb 5 00:34:29 2013 +0700

    Update P1/01.py

    add print

commit 69ac7c2c3286bee095a500e090476db51fc6c831
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Dec 7 15:30:54 2012 +0100

    write to file

commit de9382a51ec1116b731d9eaeb02deab1166bf7d2
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Dec 7 15:25:28 2012 +0100

    use read()

commit d1e9c9e88644d4b260656fa16e6ade8667058bf0
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Dec 7 15:23:58 2012 +0100

    open()

commit e5d611f73148a6b437106676fc471a3d3757c77d
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Dec 7 15:04:27 2012 +0100

    Add clarity

commit 6e4343e4332fff6e85afca2a83edcf8a3d7e0758
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Dec 7 14:53:55 2012 +0100

    Another exception

commit 929c1df55aef6d61cda0d8a673989abf75d2d746
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Dec 7 14:46:07 2012 +0100

    Custom made exception

commit f3703153bdf666d0dce5791d750d6af635bfcd26
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Dec 7 14:35:03 2012 +0100

    Update

commit 8bec520a7665bd8e374b70fcf2d2c898b4cd9573
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Dec 7 14:32:57 2012 +0100

    Multiple catches

commit c92677567fc873f0a3432599224ebed409df5f64
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Dec 7 14:22:50 2012 +0100

    Exception

commit ffbafb1a915bf6a54f2bfc9c18acc74accbc53f7
Author: Fajran Iman Rusadi <frusadi@science.uva.nl>
Date:   Fri Nov 2 11:08:29 2012 +0100

    Memulai PyGTK

commit e298ec66b0fa7b08ab0048e66947bcf4ce6c2b89
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Oct 12 17:13:06 2012 +0200

    ubah instance variable

commit 14b09c7fbda9014e25d31a5fd207f9ad2675b9b3
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Oct 12 14:46:00 2012 +0200

    OOP

commit 0f5d3bf9a291fe1d21e69452fcb464cdbb3f58ec
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Oct 12 14:45:32 2012 +0200

    Ubah contoh pertama, geser semua :D

commit 1178850df761294b196128daa7878374683400d5
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Oct 12 10:18:23 2012 +0200

    Contoh penggunaan modul

commit e3606d6f82101bb1e12a2e2e064c48706b71ef6d
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Sep 7 17:07:54 2012 +0200

    tugas 1b

commit db2ebb56d9f8c4665f53974da48c7418c1841ae8
Merge: a44f87c 178f0e3
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Sep 7 17:07:45 2012 +0200

    Merge remote-tracking branch 'origin/master'

commit a44f87c3be27ea334ee328a536e4b0387aa42291
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Sep 7 17:07:31 2012 +0200

    tugas 1a

commit 178f0e3322ef909c3ff1868cd0cf9a883c8c2358
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Sep 7 17:50:11 2012 +0300

    Update P1/03.py

commit 0c76b99fb800bc950d4fb0019038232db231ee92
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Sep 7 14:52:09 2012 +0200

    Materi/contoh untuk pertemuan 1

commit 532030317cf0f2a54c55dcc09230de551b41144b
Author: Fajran Iman Rusadi <fajran@gmail.com>
Date:   Fri Sep 7 14:52:04 2012 +0200

    Initial commit

Selamat sekali lagi, Anda sudah semakin maju dalam pembelajaran ini. Anda baru saja membuat repositori Git dan telah bertindak seperti programer profesional.

Langkah 7: Mengunggah Berkas Perubahan

Setelah melakukan proses perubahan berkas, penambahan berkas, dan pemberlakuan berkas, kita bisa mengunggah berkas tersebut dengan perintah sebagai berikut:

raviyanto@uvt:~/Python-UVT-Git$ git remote add origin https://github.com/UVT/Python-UVT-Git.git
fatal: remote origin already exists.
(sudah pernah melakukan perintah "remote add")

raviyanto@uvt:~/Python-UVT-Git$ git remote -v
origin  https://github.com/UVT/Python-UVT-Git.git (fetch)
origin  https://github.com/UVT/Python-UVT-Git.git (push)

raviyanto@uvt:~/Python-UVT-Git$ git push -u origin master
Username for 'https://github.com': raviyanto
Password for 'https://raviyanto@github.com':****** 
Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (4/4), 549 bytes, done.
Total 4 (delta 2), reused 0 (delta 0)
To https://github.com/UVT/Python-UVT-Git.git
   a63cac3..e2b3041  master -> master
Branch master set up to track remote branch master from origin.

Nah, berkas Anda sudah ada di Repo Anda.

Langkah 8: Memperbarui Berkas Perubahan

Kawan saya, Ahmad Zaki, setelah melakukan penyalinan repo ingin memperbarui berkas-berkas perubahan dari repo. Cara yang dilakukannya adalah sebagai berikut:

radityo@uvt:~$ git clone https://github.com/UVT/Python-UVT-Git.git
radityo@uvt:~$ cd Python-UVT-Git
radityo@uvt:~/Python-UVT-Git$ git remote add origin https://github.com/UVT/Python-UVT-Git.git
radityo@uvt:~/Python-UVT-Git$ git pull -u origin master

Sekarang Ahmad Zaki sudah mendapat berkas-berkas perubahan yang terbaru dari server repo.

Selamat bermain Git.

Catatan

Jika pelajaran ini terasa menakutkan saat ini, jangan khawatir. Hal ini cukup normal. Dengan sering berlatih, Anda akan mulai merasa lebih nyaman dengan Git dan perintah-perintahnya. Percayalah, Anda pasti bisa.

Sumber Bacaan

image

Lisensi

image

Updated