Git for fun

by dangtrungkien89
651 views
This entry is part [part not set] of 4 in the series Pro Git

Một vài tips hay ho khi sử dụng git (sử dụng command-line)

Đối với Backend dev, việc sử dụng command-line tool với git là khá cần thiết vì có thể môi trường làm việc không có sẵn GUI để sử dụng. Đồng thời sử dụng command-line trong nhiều trường hợp mang lại tốc độ tốt hơn so với sử dụng GUI. Vì thế tui cũng hay hướng dẫn mấy dev mới tập quen dần với git command-line

Git CLI có mấy tips khá là fun, giúp việc sử dụng git trở nên linh hoạt và dễ dàng

  1. Có khi nào bạn muốn commit 1 empty folder lên source code? Việc này là không thể vì git không nhận empty folder. Nhưng tình huống này rất hay xảy ra (trong trường hợp đang base source). Để giải quyết trường hợp này, rất đơn giản, ta tạo 1 file .gitkeep ko có nội dung và cho vào folder đó rồi commit bình thường
  2. Thi thoảng, khi chúng ta có 1 file trót “commit” lên repo, sau đó mới nhận ra file đó nên được cho vào ignore. Nhưng khi thêm file vào .gitignore thì không thấy nhận??? Vậy phải xử lý như thế nào? Rất đơn giản, bạn cần clear cache của git đi sau đó add lại là ok. Cú pháp
git rm -rf --cached .
git add . 
git commit -m "fix ignore"
  1. git checkout develop > git pull origin develop > git checkout -b hotfix_xxxx > git commit -m "message" Các từ develop, checkout... này cứ lặp đi lặp lại. Có cách nào cho đơn giản không? Hãy dùng git alias. Đây là ví dụ sử dụng:
    git cod
    git ci -m “message”
    git co branch
    git lg
    git sync remote_name

Và đây là nội dung alias tui hay add vào file .gitconfig

[alias]
    co = checkout
    br = branch
    ci = commit
    st = status
    cod = "checkout develop"
    pod = "pull origin develop"
    lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
    sync = !git checkout develop && git pull $1 develop && git push origin develop && :

Vụ git lg sẽ cho bạn nhìn git log theo dạng branch-tree với color vô cùng dễ nhìn (nhìn như GUI tool luôn):

  1. Có bao giờ bạn vừa làm việc với git3 của fsoft, vừa làm việc với git server của KH? Làm sao để source code trên máy chỉ cần có 1 bộ source, mà vẫn đảm bảo sync được giữa 2 repo git3 và git private của KH? Đó chính là khái niệm của git remote. Chắc ít người để ý đến cái từ origin khi gõ git fetch origin hay git push origin master nhỉ. Mình đã gặp ở khá nhiều dev mới, quen sử dụng GUI và khi cần sync giữa 2 git server khác nhau, các bạn ấy copy source code và push lên. Wtf??? Đầu tiên phải nắm được 1 số khái niệm cơ bản:
    • origin ở đây hiểu nôm na là 1 cái tên của 1 git server, được đặt ra. Default là origin. Tuy nhiên 1 nước không thể có 2 vua, thế nên nếu làm việc với nhiều git server thì sẽ phải dùng các tên khác. Xem ví dụ cho dễ hiểu nhỉ:<br><br>

git remote add origin https://git3.fsoft.com.vn/hotgirlxxx

git remote add git_customer https://github.com/customer_like_girls

Vậy là chúng ta đã có 2 remote server khác nhau cùng nằm trong folder source code. Lúc nào cần kéo code từ remote A sync sang remote B thì ta chỉ cần git pull remoteA rồi push sang remoteB là được. Và như file alias tui làm ở trên thì đang quy ước origin là remote name của git fsoft, còn xyz là remote name của git KH. Vậy lúc ae trong team hô “xin em phát anh ơi” thì gõ: git sync xyz => Easy game.



Một vài tips hay ho hơn nữa sẽ được cung cấp sau khi bài viết đủ 100 likes hehehe…

Series Navigation

1 comment

Hippu August 3, 2021 - 10:03 AM

Bài viết hay, cho cục đá xây nhà này.

Reply

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

You may also like