└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Panduan Penggunaan Git 2 | 3 | * [Mengunduh repository ke dalam komputer](http://https://github.com/datascienceid/README#mengunduh-repository) 4 | * [Memperbarui repository yang telah diunduh](https://github.com/datascienceid/README#memperbarui-repository) 5 | * [Mengunggah perubahan ke dalam repository](https://github.com/datascienceid/README#mengunggah-perubahan) 6 | * [Menghapus file](https://github.com/datascienceid/README#menghapus-file) 7 | * [Branching](https://github.com/datascienceid/README#branching) 8 | * [Perintah tambahan](https://github.com/datascienceid/README#perintah-tambahan) 9 | * [gitignore](https://github.com/datascienceid/README#gitignore) 10 | 11 | ## Mengunduh Repository 12 | 13 | Unduh repository ke dalam komputer menggunakan perintah `git clone`. Url 14 | repository dapat dilihat di dalam repository yang diinginkan. 15 | 16 | ``` 17 | git clone 18 | ``` 19 | 20 | #### Contoh 21 | 22 | ``` 23 | user@host:~$ git clone https://github.com/datascienceid/instagram.git instagram 24 | Cloning into 'instagram'... 25 | remote: Counting objects: 4, done. 26 | remote: Compressing objects: 100% (4/4), done. 27 | remote: Total 4 (delta 0), reused 4 (delta 0), pack-reused 0 28 | Unpacking objects: 100% (4/4), done. 29 | ``` 30 | 31 | ## Memperbarui Repository 32 | 33 | Perbarui repository yang telah diunduh ke dalam komputer menggunakan perintah 34 | `git pull`. 35 | 36 | ``` 37 | git pull origin 38 | ``` 39 | 40 | #### Contoh 41 | 42 | ``` 43 | git pull https://github.com/datascienceid/instagram.git master 44 | From https://github.com/datascienceid/instagram 45 | * branch master -> FETCH_HEAD 46 | Already up-to-date. 47 | ``` 48 | 49 | ## Mengunggah Perubahan 50 | 51 | Jangan lupa untuk melakukan pull terlebih dahulu sebelum melakukan push. 52 | 53 | **Tambah file baru atau ubah file** 54 | 55 | ``` 56 | git add 57 | ``` 58 | 59 | **Tambah beberapa file baru atau ubah beberapa file sekaligus** 60 | ``` 61 | git add . 62 | ``` 63 | 64 | **Konfirmasi penambahan atau perubahan file** 65 | 66 | ``` 67 | git commit -m "" 68 | ``` 69 | 70 | **Ubah dan konfirmasi modifikasi beberapa file sekaligus** 71 | 72 | ``` 73 | git commit -a -m "" 74 | ``` 75 | 76 | **Kirim perubahan ke dalam repository** 77 | 78 | ``` 79 | git push origin 80 | ``` 81 | 82 | #### Contoh 83 | 84 | ``` 85 | user@host:~$ git add README.md 86 | 87 | user@host:~$ git commit -m "Menambahkan readme" 88 | [master 224c510] Menambahkan readme 89 | 1 file changed, 1 insertion(+) 90 | create mode 100644 README.md 91 | 92 | user@host~$ git push origin master 93 | Counting objects: 3, done. 94 | Delta compression using up to 16 threads. 95 | Compressing objects: 100% (2/2), done. 96 | Writing objects: 100% (2/2), 271 bytes | 0 bytes/s, done. 97 | Total 2 (delta 1), reused 0 (delta 0) 98 | remote: Resolving deltas: 100% (1/1), completed with 1 local objects. 99 | To https://github.com/datascienceid/instagram.git 100 | fec3a1f..224c510 master -> master 101 | ``` 102 | 103 | ## Menghapus File 104 | 105 | Hapus file dari repository menggunakan perintah `git rm`, diikuti dengan `git commit`, dan `git push`. 106 | 107 | ``` 108 | git rm 109 | ``` 110 | 111 | #### Contoh 112 | 113 | ``` 114 | user@host~$ git rm README.md 115 | rm 'README.md' 116 | 117 | user@host~$ git commit -m 118 | [master 658a76e] Menghapus README 119 | 1 file changed, 1 deletion(-) 120 | delete mode 100644 README.md 121 | 122 | user@host~$ 123 | Counting objects: 3, done. 124 | Delta compression using up to 16 threads. 125 | Compressing objects: 100% (2/2), done. 126 | Writing objects: 100% (2/2), 236 bytes | 0 bytes/s, done. 127 | Total 2 (delta 1), reused 0 (delta 0) 128 | remote: Resolving deltas: 100% (1/1), completed with 1 local objects. 129 | To https://github.com/datascienceid.git 130 | 224c510..658a76e master -> master 131 | ``` 132 | 133 | ## Branching 134 | 135 | Branch digunakan untuk mengembangkan fitur baru atau mengubah source code tanpa 136 | memberikan dampak kepada branch lain. Branch master adalah branch default dari 137 | sebuah repository. Gunakan branch lain untuk melakukan pengembangan dan 138 | gabungkan kembali ke dalam branch master. 139 | 140 | ### Melihat branch yang terdapat di dalam repository lokal 141 | 142 | ``` 143 | git branch 144 | ``` 145 | 146 | ``` 147 | user@host~$ git branch 148 | * master 149 | ``` 150 | 151 | Tanda asterisk (\*) menandakan branch yang sedang aktif. 152 | 153 | ### Melihat branch yang terdapat di dalam repository lokal 154 | 155 | ``` 156 | git branch -r 157 | ``` 158 | 159 | ``` 160 | user@host~$ git branch -r 161 | origin/HEAD -> origin/master 162 | origin/master 163 | ``` 164 | 165 | ### Membuat branch baru di dalam repository lokal dan kirim ke repository remote 166 | 167 | **Buat branch baru** 168 | 169 | ``` 170 | git branch 171 | ``` 172 | 173 | **Aktifkan branch baru** 174 | 175 | ``` 176 | git checkout 177 | ``` 178 | 179 | **Konfirmasi perubahan** 180 | 181 | ``` 182 | git commit -m "" 183 | ``` 184 | 185 | **Unggah branch baru ke dalam repository remote** 186 | 187 | ``` 188 | git push origin 189 | ``` 190 | 191 | #### Contoh 192 | 193 | ``` 194 | user@host~$ git branch development 195 | 196 | user@host~$ git checkout development 197 | Switched to branch 'development' 198 | 199 | user@host~$ git commit -m "Menambah branch development" 200 | On branch development 201 | nothing to commit, working tree clean 202 | 203 | user@host~$ git push origin development 204 | Total 0 (delta 0), reused 0 (delta 0) 205 | remote: 206 | remote: Create pull request for new: 207 | remote: https://github.com/datascienceid/instagram/pull-requests/new?source=new&t=1 208 | remote: 209 | To https://github.com/datascienceid/instagram.git 210 | * [new branch] development -> development 211 | ``` 212 | 213 | ### Menambahkan branch dari repository remote ke dalam repository lokal 214 | 215 | ``` 216 | git branch 217 | git pull origin 218 | git checkout 219 | ``` 220 | 221 | #### Contoh 222 | 223 | ``` 224 | user@host~$ git branch development 225 | 226 | user@host~$ git pull origin development 227 | * branch new -> FETCH_HEAD 228 | * [new branch] new -> origin/development 229 | Already up-to-date. 230 | 231 | user@host~$ git checkout development 232 | Switched to branch 'development' 233 | ``` 234 | 235 | ### Menggabungkan branch lain ke dalam branch aktif 236 | 237 | **Aktifkan branch yang diinginkan** 238 | 239 | ``` 240 | git checkout 241 | ``` 242 | 243 | **Perbarui branch local** 244 | 245 | ``` 246 | git pull origin 247 | ``` 248 | 249 | **Penggabungan** 250 | 251 | ``` 252 | git merge 253 | ``` 254 | 255 | **Cek dan selesaikan konflik akibat penggabungan branch** 256 | 257 | ``` 258 | git status 259 | ``` 260 | 261 | **Konfirmasi dan unggah penggabungan branch** 262 | 263 | ``` 264 | git commit -m "" -a 265 | git push origin 266 | ``` 267 | 268 | #### Menghapus branch 269 | 270 | **Pada repository remote** 271 | 272 | ``` 273 | git push origin : 274 | ``` 275 | 276 | **Pada repository lokal** 277 | 278 | ``` 279 | git branch -d 280 | ``` 281 | 282 | ## Perintah tambahan 283 | 284 | Dapatkan status dari repository 285 | 286 | ``` 287 | git status 288 | ``` 289 | 290 | Mengecek perubahan yang belum terkonfirmasi dalam repository 291 | 292 | ``` 293 | git diff 294 | ``` 295 | 296 | Mengecek perubahan yang sudah terkonfirmasi dalam repository 297 | 298 | ``` 299 | git show 300 | ``` 301 | 302 | Dapatkan log dari sebuah repository 303 | 304 | ``` 305 | git log 306 | ``` 307 | 308 | Dapatkan hanya beberapa log terakhir dari sebuah repository (contoh: 3) 309 | 310 | ``` 311 | git log -3 312 | ``` 313 | 314 | ## gitignore 315 | Ada kalanya kita melihat file gitignore di suatu repository. Apakah itu gitignore? gitignore adalah file yang berisi instruksi kepada git repository untuk tidak men-track files tertentu. Ini sangat berguna untuk meng-exclude files yang mungkin tidak berguna atau tidak perlu di push ke repository. Contoh: .DS_Store di Mac, binary files, `__pycache__`, etc. 316 | 317 | File gitignore dimulai dengan titik (`.`) di Unix-based system (Mac dan Linux) untuk menandakan dia adalah hidden file. Di Windows, buat file gitignore dengan memberi nama `.gitignore`. 318 | 319 | #### Contoh 320 | 321 | Untrack file tertentu 322 | ``` 323 | # tagar digunakan untuk commenting 324 | # Mac 325 | .DS_Store 326 | 327 | # Spreadsheet 328 | *.xls 329 | *.xlsx 330 | 331 | # Compressed file 332 | *.zip 333 | *.rar 334 | *.gz 335 | ``` 336 | 337 | Untrack folder tertentu 338 | ``` 339 | # tagar digunakan untuk commenting 340 | # python 341 | __pycache__/ 342 | 343 | # virtual environment 344 | env/ 345 | venv/ 346 | ``` 347 | 348 | Contoh koleksi gitignore yang berguna 349 | https://github.com/github/gitignore --------------------------------------------------------------------------------