[Chia Sẻ] Thủ thuật sử dụng Git cá nhân

0
1740

Bên cạnh các lệnh ‘cơ bản’ của Git, mọi người sử dụng Git để làm việc nhiều đều có các thủ thuật Git, các mẹo Git nho nho hữu ích như tôi.

Hôm nay tôi sẽ chia sẻ một danh sách các thủ thuật mà tôi thường sử dụng trong .gitconfig của mình.

[Chia Sẻ] Thủ thuật sử dụng Git cá nhân
[Chia Sẻ] Thủ thuật sử dụng Git cá nhân

Cuộn xuống phía dưới để xem một số lệnh thú vị liên quan đến git nhé 🙂

1. Thủ thuật Git: Sửa đổi nhanh

Tôi thường quên commit 1 file hoặc để lại 1 console.log. Tôi cũng thực sự ghét việc commit remove console.log. Vì vậy, thay vì thực hiện thủ công, tôi thêm tệp như thể tôi sẽ thực hiện một commit và chạy nó.

git commit --amend --reuse-message HEAD

Nó sẽ thêm vào file trong lần commit cuối cùng một ghi chú như cũ. Tôi thì thường sử dụng git amend cho các sửa đổi nhanh.

Và bạn cũng có thể làm tương tự như thế với lệnh:

git commit --amend --no-edit

2. Thủ thuật Git: Rebase on top of origin/master

Các phần nhánh cũ hơn thường tụt lại phía sau khá xa, đến mức tôi phải tăng tốc nhiều hơn để sửa lỗi, lỗi ci hoặc là giải quyết các xung đột. Tôi thì thích làm như sau:

git fetch origin # fetch latest origin
git rebase origin/master

Bằng cách này, tôi sắp xếp các nhánh hiện tại của mình commit trên phiên bản mới nhất của master!

3. Thủ thuật Git: Last commit

Đôi khi, quá nhiều nhật ký được ghi lại làm tôi choáng. Do tôi thường xuyên sử dụng lệnh sửa đổi nhanh như đã nói ở trên, nhưng chỉ muốn xem commit cuối cùng của mình là gì, vì thế tôi dùng lệnh:

git log -1

4. Thủ thuật Git: Kiểm tra phiên bản cũ hơn của file (như file lock!)

Thỉnh thoảng, tôi làm hỏng một file không liên quan đến nhánh của mình.

Hầu hết, việc này xảy ra với các file lock (mix.lock, gói-lock.json, v.v.). Thay vì hoàn nguyên một commit có thể chứa một loạt các thứ khác khó kiểm soát, tôi chỉ cần ‘reset’ file trở lại phiên bản cũ hơn.

Bạn có thể dùng lệnh này:

git checkout hash-goes-here mix.lock

Và sau đó commit lại để sửa lỗi.

5. Thủ thuật Git: cherry-pick

Đây là một lệnh bị đánh giá thấp mà tôi thỉnh thoảng sử dụng.

Khi một branch trở nên mốc meo, đôi khi việc lấy những thứ bạn thực sự cần từ nó sẽ dễ dàng hơn là cố gắng tăng tốc độ toàn bộ branch.

Một ví dụ điển hình, đối với tôi, là có khi các branch liên quan đến code UI / backend không còn cần thiết nữa.

Trong trường hợp đó, tôi có thể muốn cherry-pic chỉ một số commit nhất định từ branch.

git cherry-pick hash-goes-here

Việc này sẽ mang lại cho bạn commit ở branch đó. Bạn cũng có thể làm một danh sách như:

git cherry-pick first-hash second-hash third-hash

Bạn cũng có chọn hẳn một khoảng bằng lệnh:

git cherry-pick first-hash..last-hash

6. Thủ thuật Git: Các Reflog

Đây là một tính năng power-user mà tôi hiếm khi sử dụng nó. Ý tôi là, mỗi năm một lần!

Nhưng nó rất hữu ích. Đôi khi, tôi bị mất commit. Tôi xóa một branch hoặc reset hoặc sửa đổi một commit mà tôi không có ý định làm thế.

Trong những tình huống đó, thật may mắn là biết reflog có tồn tại.

Đây không phải là nhật ký của các commit riêng lẻ cho branch mà bạn tham gia, đó là nhật ký của tất cả các commit của bạn – ngay cả các commit nằm trên các branch chết.

Tuy nhiên, nhật ký được làm trống theo thời gian (được cắt tỉa) để đẻ lại các thông tin liên quan.

git reflog

Lệnh git này trả về một bản ghi và những thông tin hữu ích giúp bạn tìm lại những thứ mình “lỡ tay”. Nhắc lại là nó thực sự hữu ích.

Biết nó tồn tại là tốt, nhưng tôi mong là bạn không cần dùng đến nó.

7. Thủ thuật Git: Bash command aliases

Ngoài các lệnh git, tôi cũng hay sử dụng một số bash aliases thú vị để công việc thuận tiện hơn.

Lấy Tên branch hiện tại

Để có được tên của branch hiện tại, tôi có alias này:

alias git-branch="git branch | sed -n -e 's/^\* \(.*\)/\1/p'"

Khi tôi chạy git-branch hoặc chạy $(git-branch) trong một lệnh khác, tôi sẽ nhận được tên của branch hiện tại mà tôi đang sử dụng.

Bạn cũng có thể sử dụng:

git symbolic-ref --short HEAD

Theo dõi branch nguồn

Mặc dù tôi chắc chắn rằng việc có thể thực hiện được trong .gitconfig, nhưng tôi vẫn chưa tìm ra cách.

Khi tôi chạy lần push đầu tiên trên một brach mới, tôi luôn được yêu cầu thiết lập brach để theo dõi ngược lại branch nguồn.

Đây là cách tôi theo dõi branch nguồn:

alias git-up="git branch | sed -n -e 's/^\* \(.*\)/\1/p' | xargs git push -u origin "

Bây giờ khi tôi chạy git-up, tôi push branch hiện tại của mình và thiết lập theo dõi ngược!

UPDATE: Lấy tên Branch hiện tại

Có vẻ như có một loạt các cách mới để có được tên chi branch hiện tại. Nếu bạn cuộn lên, bạn sẽ thấy rằng tôi đã sử dụng lệnh phân tích cú pháp sed để lấy tên branch.

alias git-branch="git symbolic-ref --short HEAD"

Và nó đã hoạt động chính xác như bạn mong đợi!

>> Tham gia HỌC LẬP TRÌNH tại NIIT – ICT Hà Nội, bạn sẽ được học sử dụng git để cộng tác, quản lý source code (MIỄN PHÍ)

Tổng kết

Trên đây là một số thủ thuật git mà tôi thường hay sử dụng trong quản lý source code.

Dĩ nhiên là theo cách làm việc mà tôi quen thuộc.

Nếu bạn có thủ thuật git nào hữu ích của riêng bạn thì hãy chia sẻ cho mọi người cùng biết nhé!

Antonin Januska

Tecktrending | Chia sẻ tin tức, kiến thức, thủ thuật Lập trình hữu ích

#tecktrending #tintuclaptrinh #kienthuclaptrinh #thuthuatlaptrinh