12 Lệnh Git Tuyệt Vời Bạn Có Thể đã Bỏ Lỡ
Trong thế giới phát triển hiện nay, Git đã trở thành một công cụ không thể thiếu cho lập trình viên ở mọi cấp độ, từ những người mới làm quen đến những chuyên gia dày dạn kinh nghiệm. Đó là một công cụ mà chúng ta sử dụng hàng ngày, nhưng có bao giờ bạn tự hỏi về những lệnh Git ít được biết đến có thể cải thiện quy trình làm việc của bạn?
Dưới đây là 12 lệnh Git có thể sẽ khiến bạn bất ngờ với tính hữu ích và hiệu quả của chúng.
1. Git stash
Lệnh git stash
rất hữu ích trong các quy trình làm việc với nhiều nhánh và nhiều người. Trong thực tế, có thể bạn đã gặp trường hợp bạn đang phát triển trên một nhánh và trưởng nhóm nói “hệ thống cần bạn sửa lỗi khẩn cấp trên một nhánh khác”, làm thế nào để bạn lưu trữ mã nguồn hiện tại mà không cần commit?
bash
# Lưu các thay đổi chưa commit
git stash
# Khôi phục lại các thay đổi
git stash pop
Cre: Scaler
2. Git diff
Khi bạn cần so sánh giữa những thay đổi chưa được lưu và commit trước đó, git diff
là lệnh bạn nên biết khi sử dụng Git bên cạnh các GUI hay tiện ích mở rộng của Git.
bash
git diff
3. Git rebase
Rebase là một tính năng mạnh mẽ bên cạnh tính năng Merge trong Git với mục đích giống nhau nhưng bằng phương pháp khác nhau. Tính năng tuyệt vời nhất mà git rebase
mang lại là giữ cho cây Git gọn gàng, thẳng và tránh tình trạng “hình thoi” trong biểu đồ Git.
bash
# Chuyển đến nhánh feature
git switch feature
# Rebase nhánh feature vào main
git rebase -i main feature
Cre: ByteByteGo
4. Git cherry-pick
Lệnh git cherry-pick
được sử dụng để áp dụng một commit cụ thể từ một nhánh sang nhánh khác. Điều này hữu ích khi bạn muốn chọn lọc các thay đổi từ một nhánh mà không cần phải hợp nhất toàn bộ nhánh.
bash
git cherry-pick <commit-hash>
5. Git log
Với git log
, bạn có thể hiển thị tất cả các log commit trong Git bao gồm commit hash, thông điệp commit, tác giả của commit và ngày của commit đó.
bash
git log
6. Git commit --amend
Nếu bạn muốn thay đổi thông tin về commit của mình, lệnh git commit --amend
chính là câu trả lời. Bạn có thể thay đổi thông tin của commit như: thông điệp và tác giả.
bash
git commit --amend -m "Thông điệp commit mới" --author="Tên Tác Giả <email@example.com>"
7. Git tag
Việc gán nhãn các phiên bản trong Git bằng lệnh git tag
là một thực tiễn phổ biến để đánh dấu các điểm quan trọng trong kho lưu trữ của bạn, chẳng hạn như phát hành hoặc các dấu mốc. Bạn có thể đánh dấu các commit bằng số phiên bản hoặc các định danh có ý nghĩa khác.
bash
git tag -a v1.0 -m "Phát hành phiên bản 1.0" <commit-hash>
8. Git checkout .
Khi bạn cần làm sạch tất cả các thay đổi cục bộ hoặc thêm mã để hiển thị logs trên máy chủ nhằm theo dõi lỗi và sửa lỗi khẩn cấp, git checkout .
là lệnh mạnh mẽ mà bạn nên biết.
bash
git checkout .
9. Git reset
git reset
là một lệnh mạnh mẽ trong Git cho phép bạn thiết lập HEAD hiện tại về một trạng thái đã cho. Nó thường được sử dụng để hoàn tác các thay đổi, di chuyển HEAD đến một commit khác hoặc bỏ đánh dấu các thay đổi.
Nếu bạn muốn di chuyển HEAD đến một commit cụ thể nhưng giữ nguyên các thay đổi trong thư mục làm việc và khu vực đã đánh dấu, bạn có thể sử dụng soft reset. Nếu bạn muốn hoàn toàn hoàn tác commit cuối cùng và loại bỏ các thay đổi từ commit đó, sử dụng git reset hard.
bash
# soft reset
git reset --soft <commit-hash>
# hard reset
git reset --hard HEAD^
10. Git revert
git revert
là một lệnh được sử dụng để tạo một commit mới hoàn tác các thay đổi được thực hiện bởi một commit cụ thể hoặc nhiều commit. Khác với git reset
, lệnh này không thay đổi lịch sử commit mà duy trì lịch sử bằng cách tạo ra một commit mới.
bash
git revert <commit-hash>
11. Git remote --prune
Lệnh git remote --prune
được sử dụng để xóa bất kỳ tham chiếu theo dõi удалённа nào không còn tồn tại trên kho lưu trữ từ xa. Qua thời gian, những tham chiếu này có thể trở nên lạc hậu nếu các nhánh bị xóa hoặc đổi tên trên kho lưu trữ từ xa.
bash
git remote prune origin
Với lệnh này, bạn có thể đồng bộ hoá cục bộ với không gian làm việc git từ xa.
12. Git filter-branch
git filter-branch
là một lệnh mạnh mẽ nhưng có thể nguy hiểm trong Git cho phép bạn chỉnh sửa lịch sử commit của một kho lưu trữ. Nó thường được sử dụng để chỉnh sửa các commit nhằm áp dụng nhiều bộ lọc hoặc biến đổi.
Lệnh này có thể hữu ích cho các tác vụ như xóa dữ liệu nhạy cảm khỏi lịch sử, chỉnh sửa thông điệp commit hoặc phân tách một kho lưu trữ thành nhiều kho lưu trữ.
Ví dụ, nếu bạn cần sửa đổi tác giả trong lịch sử commit trong kho lưu trữ, bạn có thể sử dụng lệnh sau:
bash
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="your_old_email"
CORRECT_NAME="your_new_name"
CORRECT_EMAIL="your_new_email"
if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]; then
export GIT_COMMITTER_NAME="$CORRECT_NAME"
export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]; then
export GIT_AUTHOR_NAME="$CORRECT_NAME"
export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags
Phụ Lục
Bài viết này được viết bởi tác giả tự do từ nhiều nền tảng:
- https://dev.to/anhkolamgidauanhthe/maybe-you-missed-these-12-awesome-git-commands-21bo
- https://www.anhkolamgidauanhthe.blog/en/blog/git-commands
source: viblo