Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save chipulaja/a510ec370e7535797126ccd27d7146de to your computer and use it in GitHub Desktop.
Save chipulaja/a510ec370e7535797126ccd27d7146de to your computer and use it in GitHub Desktop.
catatan pribadi penggunaan git untuk kerja tim

Catatan Pribadi Seputar GIT Untuk Kerja Tim

1. Biasakan kalo buat branch baru di ambil dari branch origin/master

git checkout -b myFeature origin/master

alasan kenapa menggunakan cara ini biar tidak menyulitkan yang bagian marge di sisi server

2. Jika mendapati notif fast-forward karena ke duluan tim lain pull request dan di marge

pastikan titik saat ini sama dengan origin/master

#git status
#git log --oneline
git fetch
git rebase -i origin/master
#git status
#vi readme.md 
#git add readme.md
#git rebase --continue
git push origin firstFeatureFromChipulaja
#git pull origin firstFeatureFromChipulaja
#git push origin firstFeatureFromChipulaja

keterangan perintah :

  1. git status untuk memastikan semua revisi dan implementasi feature sudah masuk stage, jika ada yang belum masuk lakukan git add kemudian git commit

  2. git log --oneline untuk memastikan branch kita setara atau di depan origin/master, jika di baris awal atau baris di bawahnya tidak ada tulisan origin/master, maka kemungkinan besar notif fast-forward atau Your branch is ahead by X commits akan muncul
    contohnya seperti berikut :

    f79f0df (HEAD -> firstFeatureFromChipulaja) implementasi feature b
    a529867 revisi readme.txt to readme.md
    b257fa5 (master) init
  3. git rebase -i origin/master untuk menyamakan posisi head branch sekarang sama dengan atau di atas origin master. Kemudian di lanjut dengan perintah git status && vi readme.md && git add readme.md && git rebase --continue perintah tersebut untuk memastikan/memperbaiki konfilik yang terjadi akibat pengabungan dengan branch origin master. untuk lebih jelasnya kita bisa lihat perubahan tersebut dengan perintah git log --onedecorate

    86f0242 (HEAD -> firstFeatureFromChipulaja) implementasi feature b
    f42975c revisi readme.txt to readme.md
    046f6c2 (origin/firstFeatureFromSyaiful, firstFeatureFromSyaiful, origin/master) implementasi feature a
    60e2509 revisi readme.txt to readme.md
    b257fa5 (master) init
  4. git pull origin firstFeatureFromChipulaja lakukan perintah ini jika mendapatkan notif non-fast-forward kemudian jalankan perintah git push origin firstFeatureFromChipulaja sekali lagi.

3. jangan melakukan commit yang tidak perlu, lakukan squash jika sudah terlanjur melakukan commit

terkadang kita pernah melakukan beberapa commit yang sebenarnya bisa di gabungkan dengan commit yang berikutnya untuk mengatasi hal itu kita bisa melakukan nya dengan perintah

git rebase -i HEAD~2
#HEAD~2 maksudnya 2 commit di depan HEAD
#ganti pick baris terakhir dengan squash

4. jaga info commit supaya tetap rapi saat melakukan merge pull request dengan mode merge squash

terkadang kita pernah menemui ada commit baru saat melakukan merge dari pull request di menu web admin, hal ini terjadi karena kita memilih mode merge commit ganti cara ini dengan mode merge squash

5. dapatkan list file antara 2 commit

git diff --name-only SHA1 SHA2
#atau 
git diff --name-only HEAD~10 HEAD~5

6. diff file yang sudah di add atau di commit

git diff -–staged nama_file
#atau 
git diff –-cached nama_file 

7. create file patch dari perubahan yang belum di commit

#cara 1
git diff > mypatch.patch

#cara 2
menyusul kalo ada waktu

8. ignore file atau folder yang bersatus modified

terkadang dalam sebuah project ada file yang berubah secara otomatis dan kita tidak mau file/folder tersebut muncul ketika kita menjalankan perintah git status maka langkah yang bisa dilakukan

#untuk spesifik folder untuk linux
find folder/yangpengen/diignore/ -type f -exec git update-index --assume-unchanged '{}' \;
#untuk spesifik file
git update-index --assume-unchanged config/database.yml

sedangkan untuk melihat daftar file/folder yang uda kita ignore dengan cara di atas jalankan perintah di bawah

git ls-files -v | grep '^[[:lower:]]'

dan untuk mengembalikan supaya tidak di ignore ikuti jalankan perintah di bawah

git update-index --no-assume-unchanged config/database.yml
atau untuk banyak file dalam satu folder
find folder/yangpengen/diignore/ -type f -exec git update-index --no-assume-unchanged '{}' \;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment