Anda di halaman 1dari 12

LAPORAN PRAKTIKUM

REKAYASA PERANGKAT LUNAK

“GIT LANJUT BAGIAN 4”

DISUSUN OLEH:
ASTIKA ISTININGRUM M0517010

ASISTEN
ANDREAS FANDY DWI N M0516010
FIKRI HASHFI N M0516021

PROGRAM STUDI INFORMATIKA


FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SEBELAS MARET
2019
PEMBAHASAN

PERBEDAAN GIT CHECKOUT, GIT RESERT, DAN GIT REVERT

A. Git Checkout

Gambar 1: Nomor Commit

Gambar 2: Perintah Git Checkout <nomor commit>


Perintah Git checkout <nomor commit> digunakan untuk kembali ke kondisi file pada
commit tertentu. Jadi, sebelum menjalankan perintah git checkout <nomor commit>, terlebih
dahulu user harus mengetahui nomor commit yang akan dituju. Untuk melihat nomor commit,
user bisa menjalankan perintah git log. Setelah menjalankan perintah git log, akan
ditampilkan nomor commit, author, date, dan argumen commit seperti pada Gambar 1. Pada
Gambar 1 terdapat 5 commit. User dapat menggunakan nomor commit tersebut untuk
mengembalikan kondisi file pada nomor commit tertentu. Pada percobaan ini, user akan
mengembalikan kondisi file pada commit ke-3 (3bf063da4a1e4fb37ec14e663b6562
95c718247) dengan menjalankan perintah git checkout 3bf063da4a1e4fb37ec14e663b65629
5c718247c. Setelah menekan enter, akan ditampilkan tulisan seperti pada Gambar 2 yang
menunjukkan jika user sudah berada pada commit 3bf063da4a1e4fb37ec14e663b656
295c718247.
Perbandingan isi file sebelum menjalankan perintah git checkout 3bf063da4a1e
4fb37ec14e663b65629 5c718247c dapat dilihat pada Gambar 3 dan 4 di bawah ini:

Gambar 3 : Isi File Index.html Gambar 4: Isi File Index.html


Sebelum Checkout ke Commit ke-3 Setelah Checkout ke Commit ke-3

Gambar 3 adalah isi file index.html pada commit ke-5, yaitu commit eed928….
Kemudian, file index.html dikembalikan kondisinya ke commit ke-3, yaitu commit
3bf063d…. seperti Gambar 4 di atas. Pengembalian kondisi file ini hanya bersifat sementara,
jadi tidak disimpan pada database git.

Gambar 5: Perintah Git Checkout Master


Kondisi file sekarang berada pada commit 3bf063d…. Untuk kembali ke commit
terakhir, jalankan perintah git checkout master. Setelah menekan enter, akan ditampilkan
tulisan seperti Gambar 5 yang menunjukkan bahwa sekarang user sudah pindah ke cabang
master (commit terakhir).

Gambar 6: Perintah Git Checkout -b nama cabang <nomor commit>

Perintah git checkout juga bisa digunakan untuk berpindah ke commit tertentu
sekaligus membuat cabang pada commit tersebut. Misalnya, pada Gambar 6 dijalankan
perintah git checkout -b cabangBaru 3bf063d…. yang digunakan untuk berpindah ke commit
36f063d…. sekaligus membuat cabang baru dengan nama cabangBaru.

B. Git Resert

Gambar 7: Perintah Git Reset dan Git Status

Perintah git reset --argumen <nomor commit> digunakan untuk kembali ke kondisi
file pada nomor commit sebelumnya, namun tidak bisa kembali ke commit terakhir, sehingga
perintah ini disebut perintah berbahaya yang akan menghapus commit terakhir. Terdapat 3
argumen pada perintah git reset, yaitu : --soft (mengembalikan kondisi file dalam keadaan
staged), --mixed (mengembalikan kondisi file dalam keadaan modified, dan --hard
(mengembalikan kondisi file dalam keadaan commited). Misalnya, perintah git reset --soft
3bf063d…. akan mengembalikan file index.html pada commit 3bf063d…. dalam keadaan
staged. Untuk mengeceknya dapat digunakan perintah git status, jika berhasil akan
ditampilkan tulisan yang menunjukkan bahwa user sudah berpindah ke commit tujuan dan
file dalam keadaan staged seperti Gambar 7 di atas.
C. Git Revert

Gambar 8: Perintah Git Revert

Perintah git revert <nomor commit> merupakan perintah yang paling aman untuk
kembali ke commit tertentu. Perintah ini akan menggabungkan hasil perubahan pada commit
sebelumnya dengan commit terakhir. Misalnya, pada Gambar 8 terdapat perintah git revert
3bf063d…. yang artinya, file akan dikembalikan kondisinya ke commit 3bf063d…. dan akan
ditampilkan jendela untuk mengedit isi file. Setelah mengedit isi file, jalankan perintah add
dan commit file. Pada perintah ini terdapat error karena terdapat konflik pada file yang dapat
dilihat pada Gambar 9 dibawah ini:

Gambar 9: Konflik Pada File Index.html

Gambar 9 menunjukkan konflik yang terjadi akibat perbedaan perubahan isi file pada
commit 3bf063d…. dan commit terakhir. Eliminasi salah satu perubahan untuk mengatasi
konflik. Setelah melakukan eliminasi, jalankan perintah fit add dan git commit seperti
Gambar 10 di bawah ini:
Gambar 10: Perintah Gitt Add, Git Commit, Git Status, dan Git Log

Pada Gambar 10 terdapat perintah git add dan git commit untuk menyimpan file yang
sudah dieliminasi tadi. Terdapat perintah git status untuk mengecek, apakah file sudah
tersimpan atau belum. Jika sudah, lihat log aktivitas dengan perintah git log. Pada git log
ditampilakan nomor commit terakhir, yaitu 9995ee2….

PENGGUNAAN GIT FETCH DAN GIT PULL


A. Git Fetch

Gambar 11: Repository Github

Gambar 11 merupakan isi dari repository praktikum-rpl-4. Terdapat 3 commits, 1


branch, 1 contributor, dan 2 file, yaitu README.md dan index.html. Pada percobaan ini file
yang akan diubah isinya adalah file index.html.
Gambar 12: Perbandingan Commit Remote Repository dan Local Repository

Gambar 12 merupakan perbandingan commit remote repository dan local repository.


Terdapat 3 commit pada remote repository dan 1 commit pada local repository.

Gambar 13: File Index.html Gambar 14: File Index.html


Sebelum Diubah Setelah Diubah

Gambar 13 adalah isi dari file index.html sebelum diubah. Kemudian, dilakukan
perubahan file index.html di remote repository, sehingga isi file menjadi seperti pada Gambar
14. Setelah melakukan perubahan, file di commit, ini berarti commit pada remote repository
bertambah 1, sehingga total commit di remote repository ada 4.

Gambar 15: Perintah Git Fetch Origin Master


Perintah git fetch origin master digunakan untuk mengambil commit dari remote
repository. Terdapat 4 commit pada remote repository, untuk mengambil commit pada
remote repository ke local repository, maka dijalankan perintah git fetch origin master. Jika
berhasil mengambil commit, akan muncul tulisan seperti Gambar 15 di atas.

Gambar 16: Perintah Git Checkout Origin/Master

Gambar 17: Perintah Git Status dan Git Log

Untuk memastikan apakah commit sudah berhasil dipindahkan atau belum, maka
dapat dicek menggunakan perintah git log, namun sebelumnya user harus pindah ke cabang
origin/ master terlebih dahulu dengan perintan git checkout origin/master. Setelah itu,
jalankan perintah git status untuk memastikan apakah kita sudah berada pada cabang
origin/master. Jika user sudah berada pada cabang origin/master, jalankan perintah git log.
Pada git log ditampilkan commit-commit yang berhasil diambil dari remote repository, jadi
sekarang di local repository terdapat 4 commit dan 2 branch (master dan origin/master).

Gambar 18: Perintah Git Checkout Master dan Git Merge Master Origin/Master

Commit yang berada pada remote repository sudah berhasil di ambil, namun pada
local repository terdapat 2 branch yang belum di merge karena perintah git fetch hanya
digunakan untuk mengambil commit dari remote repository saja tanpa menggabungkan
branch local repository (master) dan remote repository (origin/master). Untuk
menggabungkan kedua branch tersebut, terlebih dahulu user harus berpindah ke branch
master dengan perintah git checkout master. Setelah itu, user dapat menggabungkan kedua
branch dengan perintah git merge master origin/master. Kemudian cek, apakah kedua branch
sudah berhasil di merge atau belum dengan cara melihat git log. Jika berhasil digabung, maka
tampilannya seperti Gambar 19 di bawah ini:

Gambar 19: Perintah Git Log


B. Git Pull

Gambar 20: File Index.html Gambar 21: File Index.html


Sebelum Diubah Setelah Diubah

Gambar 20 dan Gambar 21 merupakan file index.html yang akan diubah isinya lagi di
remote repository. Gambar 20 adalah file index.html sebelum diubah isinya. Gambar 21
adalah file index.html yang sudah diubah isinya. Setelah mengubah isi file index.html,
perubahan di commit, sehingga pada remote repository jumlah commitnya bertambah
menjadi 5 commit.

Gambar 22: Github

Gambar 22 menunjukkan isi dari repository praktikum-rpl-4. Pada repository ini


terdapat 5 commit, 1 branch, 1 contributor, dan 2 file (README.md dan index.html).

Gambar 23: Perintah Git Pull origin master


Perintah git pull origin master digunakan untuk mengambil commit dari remote
repository ke local repository sekaligus melakukan merge pada cabang. Jika berhasil
menjalankan perintah ini, maka akan muncul tulisan seperti pada Gambar 23 di atas.

Gambar 24: Perintah Git Log

Untuk melihat apakah commit dari remote repository berhasil diambil, cek dengan
perintah git log. Setelah menjalankan perintah git log, maka akan ditampilkan commit yang
diambil dari remote repository. Pada Gambar 24 terdapat 5 commit dan 2 cabang yang
otomatis di merge, yaitu cabang master pada local repository dan cabang origin/master pada
remote repository.
KESIMPULAN

Dari praktikum ini dapat disimpulkan bahwa:


a. Perintah git checkout <nomor commit> dapat digunakan untuk kembali ke kondisi file
sebelumnya (commit sebelumnya) dan kembali lagi ke kondisi file terakhir (commit
terakhir).
b. Perintah git checkout -b nama-cabang <nomor commit> digunakan untuk kembali ke
commit sebelumnya sekaligus membuat cabang di commit tersebut.
c. Perintah git reset --argumen <nomor commit> digunakan untuk kembali ke commit
sebelumnya dan commit setelahnya (terakhir) akan terhapus, sehingga jika menjalankan
perintah ini user tidak dapat kembali lagi ke commit terakhir.
d. Terdapat 3 argumen untuk menjalankan perintah git resert, yaitu :--soft (mengembalikan
dengan kondisi file dalam keadaan staged). --mixed (mengembalikan dengan kondisi file
modified), dan --hard (mengembalikan dengan kondisi file commited).
e. Perintah git revert <nomor commit> digunakan untuk mengembalikan kondisi file pada
commit sebelumnya dan menggabungkannya dengan commit terakhir.
f. Perintah git fetch digunakan untuk mengambil commit dari remote repository ke local
repository tanpa menggabungkan cabang pada kedua repository.
g. Perintah gir pull digunakan untuk mengambil commit dari remote repository ke local
repsoitory sekaligus menggabungkan cabang kedua repository.

Anda mungkin juga menyukai