| Author | Excersice | |
|---|---|---|
| Rachmat Ghaly | bisagit@gmail.com | GIT-V1 |
- Mengerti penggunaan Git
- init
- add
- commit
- diff
- log
- branch
- solve conflict
- Mengerti penggunaan Github
- add remote
- push
- pull request
- Sudah install Git di komputer local
- Sudah memiliki account Github
- Sudah mempelajari materi Terminal, VSCode dan Version Control System
Kita akan melakukan practice dengan 1 repository yang dibuat. Jadi soal latihan dibawah ini akan berkelanjutan dengan repository yang sama. Jadi selamat mengerjakan! 😉
-
Exercise 1
-
Task: Configurasi email dan name Git mu dengan identitas yang benar agar git bisa membuat
commit! -
*Required command: lakukan perintah
git config user.name && git config user.email:
Warning! Selanjutnya, setiap Required command/output harus diiringi dengan perintah
git config user.name && git config user.emailuntuk memastikan keaslian screenshot. -
-
Exercise 2
-
Task: Buatlah sebuah folder dengan format
name-id-exercise(contoh: ghaly-halotech2023-exercise) diluar folder git-exercise ini, masuk ke folder tersebut dan jadikan sebagai repository git! -
*Required command: lakukan perintah
pwd,ls -lalalu gunakan perintahgit status:
-
-
Exercise 1
-
Task: Buatlah 2 file yang bernama
belajar.htmldanngoding.js! -
*Required output: lakukan perintah
lsdangit status-
expected:
> git config user.name && git config user.email example_name example@gmail.com > ls belajar.html ngoding.js > git status On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) belajar.html ngoding.js nothing added to commit but untracked files present (use "git add" to track)
-
screenshoot your output:
-
-
-
Exercise 2
-
Task: Setelah itu masukkan file
belajar.htmlke kondisi staged. -
*Required output: Periksalah status Git sekarang!.
-
expected:
> git config user.name && git config user.email example_name example@gmail.com > git status On branch master No commits yet Changes to be committed: (use "git rm --cached <file>..." to unstage) new file: belajar.html Untracked files: (use "git add <file>..." to include in what will be committed) ngoding.js
-
screenshoot your output:
Perhatikan keluaran dari git status, lihat file
belajar.htmlpindah ke staging area. -
-
Sebelumnya kita sudah tau bahwa file belajar.html sudah berada di staging area dan file ngoding.js masih berada di working directory.
Working directory adalah folder dan file yang kita miliki sekarang.
-
Exercise 1
-
Task: Buatlah commit untuk file yang ada di staging area dengan pesan:
commit pertama. Tulis pesan sama persis! -
*Required command: Lakukanlah perintah
git status-
expected:
> git config user.name && git config user.email example_name example@gmail.com > git status On branch master Initial commit Untracked files: (use "git add <file>..." to include in what will be committed) ngoding.js
-
screenshoot your output:
Sekarang terlihat bahwa file
belajar.htmlsudah tidak ada di staging area dan artinya kita sudah berhasil commit. -
-
-
Exercise 1
-
Task: Lakukanlah perintah Git untuk melihat history commit yang telah dilakukan sebelumnya!
-
*Required output: Keluarkan output log dan lakukan perintah
git config --listdiakhir.commit 2860ee9930484d1ce083a6da7584834f46976715 (HEAD -> master) Author: Rachmat Ghaly <ghalyrachmat@gmail.com> Date: Thu Jul 28 14:08:24 2023 +0700 commit pertama > git config user.name && git config user.email example_name example@gmail.com
-
screenshoot your output:
-
-
Exercise 2
> git status On branch master Initial commit Untracked files: (use "git add <file>..." to include in what will be committed) ngoding.js
-
Task: File
ngoding.jsmasih berada di working directory. Pindahkanlah ke staging area lalu commit dengan pesan "commit kedua" dan lihat history commitnya kembali! -
*Required output: Lakukan perintah
git config --listdiakhir.commit 4c6adfae4bfe7d9385589c8529f61c5f81341e78 (HEAD -> master) Author: Rachmat Ghaly <ghalyrachmat@gmail.com> Date: Thu Jul 28 14:21:38 2022 +0700 commit kedua commit 2860ee9930484d1ce083a6da7584834f46976715 Author: Rachmat Ghaly <ghalyrachmat@gmail.com> Date: Thu Jul 28 14:08:24 2022 +0700 commit pertama > git config user.name && git config user.email example_name example@gmail.com
-
screenshoot your output:
-
*Required command: Lakukanlah perintah
git status
-
-
Exercise 3
-
Task: Buatlah perubahan pada file
belajar.html, dengan menambahkan content "<h1>Latihan Git</h1>". Lalu tambahkan perubahan tersebut ke staging area! -
*Required command: Lakukanlah perintah
git status-
expected:
> git config user.name && git config user.email example_name example@gmail.com > git status On branch master Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: belajar.html
-
screenshoot your output:
Terlihat bahwa sekarang, file
belajar.htmlsudah berada di staging area dengan status modified -
-
-
Exercise 4
-
Task: Buatlah commit dari perubahan diatas dengan pesan "menambahkan content h1 ke file belajar.html" lalu lihat history commitnya!
-
*Required output: Lakukan perintah
git config --listdiakhirAuthor: Rachmat Ghaly <user.name> Date: Thu Jul 28 20:47:09 2022 +0700 menambahkan content h1 ke file belajar.html commit 4c6adfae4bfe7d9385589c8529f61c5f81341e78 Author: Rachmat Ghaly <ghalyrachmat@gmail.com> Date: Thu Jul 28 14:21:38 2022 +0700 commit kedua commit 2860ee9930484d1ce083a6da7584834f46976715 Author: Rachmat Ghaly <ghalyrachmat@gmail.com> Date: Thu Jul 28 14:08:24 2022 +0700 commit pertama > git config user.name && git config user.email example_name example@gmail.com
-
screenshoot your output:
-
-
Exercise 5
-
Task: Lakukan perintah Git untuk melihat history commit hanya pada file
belajar.html! -
*Required output: Lakukan perintah
git config --listdiakhircommit 5c22cd31192f8fad12cb667695569a09f64fb6f7 (HEAD -> master) Author: Rachmat Ghaly <user.name> Date: Thu Jul 28 20:47:09 2022 +0700 menambahkan content h1 ke file belajar.html commit 2860ee9930484d1ce083a6da7584834f46976715 Author: Rachmat Ghaly <ghalyrachmat@gmail.com> Date: Thu Jul 28 14:08:24 2022 +0700 commit pertama > git config user.name && git config user.email example_name example@gmail.com
-
screenshoot your output:
-
-
Exercise 6
-
Task: Lakukan perintah Git untuk melihat history commit hanya satu baris per-commit!
-
*Required output: Lakukan perintah
git config --listdiakhir5c22cd3 (HEAD -> master) menambahkan content h1 ke file belajar.html 4c6adfa commit kedua 2860ee9 commit pertama > git config user.name && git config user.email example_name example@gmail.com
-
screenshoot your output:
-
-
Exercise 7
-
Task: Lakukan perintah Git untuk melihat history commit dengan menampilkan pointer pada setiap commit-nya!
-
*Required output: Lakukan perintah
git config --listdiakhir* commit 5c22cd31192f8fad12cb667695569a09f64fb6f7 (HEAD -> master) | Author: Rachmat Ghaly <user.name> | Date: Thu Jul 28 20:47:09 2022 +0700 | | menambahkan content h1 ke file belajar.html | * commit 4c6adfae4bfe7d9385589c8529f61c5f81341e78 | Author: Rachmat Ghaly <ghalyrachmat@gmail.com> | Date: Thu Jul 28 14:21:38 2022 +0700 | | commit kedua | * commit 2860ee9930484d1ce083a6da7584834f46976715 Author: Rachmat Ghaly <ghalyrachmat@gmail.com> Date: Thu Jul 28 14:08:24 2022 +0700 commit pertama > git config user.name && git config user.email example_name example@gmail.com
-
screenshoot your output:
-
-
Exercise 8
-
Task: Cobalah kamu pindah ke commit yang pertama kali! Dan coba tampilkan history commit nya dengan kombinasi satu baris dan menampilkan pointer!
-
*Required output: Lakukan perintah
git config --listdiakhir* 2860ee9 (HEAD) commit pertama > git config user.name && git config user.email example_name example@gmail.com
-
screenshoot your output:
-
Task: Coba pindah kembali ke posisi commit terbaru!
-
*Required output: Lakukan perintah
git config --listdiakhir* 5c22cd3 (HEAD -> master) menambahkan content h1 ke file belajar.html * 4c6adfa commit kedua * 2860ee9 commit pertama > git config user.name && git config user.email example_name example@gmail.com
-
screenshoot your output:
-
-
Exercise 1
-
Task: Ubahlah isi dari file
belajar.htmlmenjadi "<h1>Latihan Git - HaloTechCAMP2023</h1>" dan juga tambahkan juga isi filengoding.jsmenjadi "console.log('Hello Git')", dan coba lihat perubahan tersebut menggunakandiff! -
*Required output: Lakukan perintah
git config user.name && git config user.emaildiakhir-
expected:
diff --git a/belajar.html b/belajar.html index 10278a7..af951a9 100644 --- a/belajar.html +++ b/belajar.html @@ -1 +1 @@ -<h1>Latihan Git</h1> +<h1>Latihan Git - HaloTechCAMP2023</h1> diff --git a/ngoding.js b/ngoding.js index e69de29..4997259 100644 --- a/ngoding.js +++ b/ngoding.js @@ -0,0 +1 @@ +console.log('Hello Git') > git config user.name && git config user.email example_name example@gmail.com
-
screenshoot your output:
-
-
-
Exercise 2
-
Task: Coba sekarang lihat diff namun hanya untuk melihat perubahan pada file
belajar.html! -
*Required output: Lakukan perintah
git config --listdiakhir
-
> git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: belajar.html
modified: ngoding.js
no changes added to commit (use "git add" and/or "git commit -a")Terlihat diatas bahwa terjadi perubahan file pada belajar.html dan ngoding.html di working directory kita
-
Exercise 1
-
Task: Coba masukan semua perubahan tersebut sekaligus ke staging area!
-
*Required command: Lakukanlah perintah
git statuskembali
-
-
Exercise 2
-
Task: Lakukan pembatalan perubahan pada file
ngoding.jsdi staging area agar kembali ke working directory untuk kita revisi! -
*Required command: Lakukanlah perintah
git statuskembali-
expected:
> git config user.name && git config user.email example_name example@gmail.com > git status On branch master Changes to be committed: (use "git restore --staged <file>..." to unstage) modified: belajar.html Changes not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: ngoding.js
-
screenshoot your output:
-
-
-
Exercise 3
-
Task: Lakukan perubahan pada file
ngoding.jsdengan mengubah contentnya menjadi "console.log('Latihan Git - HaloTechCAMP2023')"!. Lalu masukan ke staging area dan lakukan commit dengan pesan "menambahkan content console ke filengoding.js"! -
*Required command: Lakukanlah perintah
git statuskembali
-
88b656e (HEAD -> master) menambahkan content console ke file ngoding.js
5c22cd3 menambahkan content h1 ke file belajar.html
4c6adfa commit kedua
2860ee9 commit pertamaSekarang story commit kita sudah ada 4 pointer yang berisi setiap perubahan pada file yang kita kerjakan.
-
Exercise 1
-
Task: Bagaimana jika perubahan yang sudah kita commit ingin di revisi? Secara history, commit kita tidak akan bisa dihapus. Namun kita bisa mengembalikan commit sebelumnya ke commit berikutnya dengan melakukan
revert. Cobalah revert perubahan id88b656eke commit berikutnya! -
*Required command: Lakukan perintah untuk menampilkan history commit dengan opsi
onelinedan lakukancatpada filebelajar.htmldanngoding.js-
expected:
6a2659e (HEAD -> master) Revert "revisi perubahan dari file belajar.html & ngoding.js" 88b656e menambahkan content console ke file ngoding.js 5c22cd3 menambahkan content h1 ke file belajar.html 4c6adfa commit kedua 2860ee9 commit pertama > cat belajar.html <h1>Latihan Git</h1> > cat ngoding.js > > git config user.name && git config user.email example_name example@gmail.com
-
screenshoot your output:
-
-
Kita lihat bahwa file
belajar.htmldanngoding.jskembali ke kondisi di commit88b656e
> git branch
* master
> git status
On branch master
nothing to commit, working tree cleanJika diperhatikan dengan git status kita sekarang berada pada branch master
-
Exercise 1
-
Task: Buatlah branch baru dengan nama
new-feature, lalu masuklah ke branch baru tersebut!. -
*Required command: Lakukanlah perintah
git branchdangit status
-
-
Exercise 2
-
Task: Sekarang kita sudah berada di branch
new-feature. Cobalah buat satu file yang bernamafun-feature.js, tambahkan ke staging area dan lakukan commit dengan pesan "commit new feature"! -
*Required output: Lakukan perintah untuk menampilkan history commit kombinasi
onelinedangraph, lalu lakukan perintahls-
expected:
* bd531c8 (HEAD -> new-feature) commit new feature * 6a2659e Revert (master) "revisi perubahan dari file belajar.html & ngoding.js" * 88b656e menambahkan content console ke file ngoding.js * 5c22cd3 menambahkan content h1 ke file belajar.html * 4c6adfa commit kedua * 2860ee9 commit pertama > ls belajar.html fun-feature.js ngoding.js > git config user.name && git config user.email example_name example@gmail.com
-
screenshoot your output:
-
-
-
Exercise 3
-
Task: Cobalah pindah kembali ke branch
master! dan coba check filefun-feature.jsapakah ada di branch master?. -
*Required command: Lakukan perintah
git status,git branchdanls-
expected:
> git config user.name && git config user.email example_name example@gmail.com > git status On branch master nothing to commit, working tree clean > git branch * master new-feature > ls belajar.html ngoding.js
-
screenshoot your output:
Jadi begitulah sebuah branch pada Git. Dia melakukan isolasi setiap perubahan pada file dan folder berdasarkan branch nya.
-
-
-
Exercise 4
-
Task: Di branch
master, coba kamu lakukan penambahan content pada filengoding.jsyaitu "console.log('Update branch master')" dan lakukan commit dengan pesan "update branch master file ngoding.js"! -
*Required command: Lakukan perintah
git log --all --decorate --oneline --graphuntuk melihat percabangan yang terjadi-
expected:
> git config user.name && git config user.email example_name example@gmail.com > git log --all --decorate --oneline --graph * d940eb9 (HEAD -> master) update branch master file ngoding.js | * bd531c8 (new-feature) commit new feature |/ * 6a2659e Revert "revisi perubahan dari file belajar.html & ngoding.js" * 88b656e menambahkan content console ke file ngoding.js * 5c22cd3 menambahkan content h1 ke file belajar.html * 4c6adfa commit kedua * 2860ee9 commit pertama
-
screenshoot your output:
-
Disini terlihat bahwa sudah terjadi percabangan pada branch
masterdengannew-feature -
-
Exercise 5
-
Task: Lakukan penambahan content pada file
belajar.htmlyaitu "<h1>Update branch master</h1>" dan lakukan commit dengan pesan "update branch master file belajar.html"! -
*Required command: Lakukan perintah
git log --all --decorate --oneline --graphuntuk melihat percabangan yang terjadi -
expected:
> git config user.name && git config user.email example_name example@gmail.com > git log --all --decorate --oneline --graph * bf84c9a (HEAD -> master) update branch master file belajar.html * d940eb9 update branch master file ngoding.js | * bd531c8 (new-feature) commit new feature |/ * 6a2659e Revert "revisi perubahan dari file belajar.html & ngoding.js" * 88b656e menambahkan content console ke file ngoding.js * 5c22cd3 menambahkan content h1 ke file belajar.html * 4c6adfa commit kedua * 2860ee9 commit pertama
-
-
Exercise 6
-
Task: Pindah ke branch
new-feature, laukan perubahan pada filengoding.jsdengan menambahkan content "console.log('Update branch new-feature')" dan pada filefun-feature.jsdengan content "console.log('My Cool Feature')". Lakukan commit dengan pesan "update branch new-feature file ngoding.js & feature.js"! -
*Required command: Lakukan perintah
git log --all --decorate --oneline --graphuntuk melihat percabangan yang terjadi-
expected:
> git config user.name && git config user.email example_name example@gmail.com > git log --all --decorate --oneline --graph * 052dd41 (HEAD -> new-feature) update branch new-feature file ngoding.js & feature.js * bd531c8 commit new feature | * bf84c9a (master) update branch master file belajar.html | * d940eb9 update branch master file ngoding.js |/ * 6a2659e Revert "revisi perubahan dari file belajar.html & ngoding.js" * 88b656e menambahkan content console ke file ngoding.js * 5c22cd3 menambahkan content h1 ke file belajar.html * 4c6adfa commit kedua * 2860ee9 commit pertama
-
screenshoot your output:
-
-
-
Exercise 7
-
Task: Pindah ke branch
masterdan lakukan merge ke branchnew-feature!. Harusnya terjadi conflict pada filengoding.js.Solve conflict tersebut dengang memilih perubahan pada branch
master! -
*Required command: Lakukan perintah
git log --all --decorate --oneline --graphuntuk melihat percabangan yang terjadi-
expected:
> git config user.name && git config user.email example_name example@gmail.com > git log --all --decorate --oneline --graph * 752dfaa (HEAD -> master) Merge branch 'new-feature' |\ | * 052dd41 (new-feature) update branch new-feature file ngoding.js & feature.js | * bd531c8 commit new feature * | bf84c9a update branch master file belajar.html * | d940eb9 update branch master file ngoding.js |/ * 6a2659e Revert "revisi perubahan dari file belajar.html & ngoding.js" * 88b656e menambahkan content console ke file ngoding.js * 5c22cd3 menambahkan content h1 ke file belajar.html * 4c6adfa commit kedua * 2860ee9 commit pertama
-
screenshoot your output:
-
-
-
Exercise 1
-
Task: buatlah repository public di profile github mun dengan format
name-id. Contohnya:Lalu tambahkan remote dari repository yang telah dibuat, ke local repository yang sudah dibuat dengan format
name-id-exercise! -
*Required command: Lakukan perintah
git remote -vuntuk mengetahui remote repository yang sudah ditambahkan.
-
-
Exercise 1
-
Task: Lakukanlah
pushke remote repository yang telah ditambahkan dengan branch bernamamain:! -
*Required command: Lakukan perintah
git log --all --decorate --oneline --graph-
expected:
> git config user.name && git config user.email example_name example@gmail.com > git log --all --decorate --oneline --graph * 752dfaa (HEAD -> main, origin/main) Merge branch 'new-feature' |\ | * 052dd41 (new-feature) update branch new-feature file ngoding.js & feature.js | * bd531c8 commit new feature * | bf84c9a update branch master file belajar.html * | d940eb9 update branch master file ngoding.js |/ * 6a2659e Revert "revisi perubahan dari file belajar.html & ngoding.js" * 88b656e menambahkan content console ke file ngoding.js * 5c22cd3 menambahkan content h1 ke file belajar.html * 4c6adfa commit kedua * 2860ee9 commit pertama
-
screenshoot your output:
-
-
*Last requirement: sreenshoot private repository github mu:
-
expected:
-
screenshoot your repository Github:
-
url repository github (change
urlwith your public repository Github): github
Finish.
Last Instruction: Jangan lupa, setelah semua screenshot terisi, lakukan push pada repository dan checklist semua Progress Exercise Git pada description Pull Request sesuai dengan instruksi README.md.


































