Đây Sẽ Là Phần 2, Tiếp Nối Phần 1 Còn Đang Gian Dỡ
xem thêm phần 1 ở đây
11. Git Merge
Git merge
là một trong những lệnh quan trọng nhất trong Git, cho phép bạn kết hợp các thay đổi từ một nhánh (branch) vào nhánh hiện tại của bạn.Việc merge sẽ cập nhật những đoạn code có trong những nhanh con
git merge <ten_nhánh>
Ví dụ
# Chuyển sang nhánh main git checkout main # Merge nhánh develop vào main git merge develop
12. Git Branch
Git Branch
là một phần cực kỳ quan trong khi bạn dùng đến git, lệnh branch dùng để quản lý dữ liệu và feature có trong dự án mà tránh việc ảnh hưởng trực tiếp đến dự án chính
- lệnh dùng để tạo nhanh mới
git branch <name_branch>
- Tạo nhánh mới trỏ đến commit cụ thể.
git branch <tên_nhánh> <commit_id>
- Đổi tên nhánh local.
git branch -m <tên_cũ> <tên_mới>
- Xóa nhánh local (chỉ khi nhánh đã được merge).
git branch -d <tên_nhánh>
13. Git Reset
git reset
là một lệnh mạnh mẽ trong Git dùng để hoàn tác các thay đổi. Nó có thể thay đổi trạng thái của các commit, staging area (index), và working directory. Dưới đây là các cách sử dụng phổ biến của git reset
git reset --soft <commit>
- Di chuyển HEAD về commit trước đó, nhưng giữ nguyên thay đổi trong staging area và working directory. Bạn có thể sửa đổi thay đổi và commit lại.
```bash
git reset --mixed <commit>
- Di chuyển HEAD về commit hiện tại và đưa tất cả thay đổi từ staging area trở về working directory.
git reset --hard <commit>
- Di chuyển HEAD về commit cách commit hiện tại 2 commit, ghi đè lên staging area và working directory. Thao tác này không thể hoàn tác, bạn sẽ mất tất cả thay đổi sau commit đó.
Cảnh báo: Sử dụng git reset không đúng cách có thể dẫn đến mất dữ liệu, vì vậy hãy cẩn thận và đảm bảo bạn hiểu rõ tác động của nó trước khi sử dụng.
14. Git Checkout
git Checkout
là một lệnh truyền thống được sữ dụng nhiều dùng để chuyển đổi các nhánh với nhau, khi dùng checkout thì sẽ copy code và chuyển sang nhánh bạn muốn, như vậy sẽ dễ gây lỗi code hãy đảm bảo bạn đã commit code trong nhánh đó trước khi chuyển
- Chuyển đổi các nhánh
git checkout <tên nhánh>
- Tạo nhánh mới và chuyển sang nhánh đó
git checkout -b <tên nhánh mới>
- Khôi phục toàn bộ working directory về trạng thái từ commit trước đó (có thể gây mất dữ liệu, nên cẩn thận)
git checkout <commit>
Ưu điểm:
- Linh hoạt, cung cấp nhiều chức năng trong một lệnh.
Nhược điểm:
- Dễ gây nhầm lẫn do có nhiều chức năng.
- Có thể gây mất dữ liệu nếu sử dụng sai cách.
15. Git Switch
git switch
là lệnh mới được giới thiệu trong Git phiên bản 2.23, tập trung vào chức năng chuyển đổi giữa các branch một cách rõ ràng và an toàn hơn. Git switch có thể nói như 1 bản mini của Git Checkout
có nhưng tính năng đúng như cái tên chỉ chuyển nhánh và không thây đổi gì về code
- Chuyển đổi các nhánh
git switch <tên nhánh>
- Tạo nhánh mới và chuyển sang nhánh đó
git switch -b <tên nhánh mới>
Ưu điểm:
- Dễ hiểu và sử dụng hơn
git checkout
khi chuyển đổi branch. - An toàn hơn, hạn chế rủi ro mất dữ liệu.
BẢNG SO SÁNH NHỎ GIỮA GITCHECKOUT và GITSWITCH
Tính năng | git checkout | git switch |
Chuyển đổi nhánh | Có | Có |
Tạo nhánh mới | Có (git checkout -b <nhánh>) | Có (git switch -c <nhánh>) |
Khôi phục file từ staging area | Có (git checkout -- <tệp>) | Không |
Khôi phục file từ commit | Có (git checkout <commit> -- <tệp>) | Không |
Khôi phục thay đổi từ stash | Có (git checkout -p <stash>) | Không |
Rõ ràng về mục đích | Thấp (nhiều chức năng) | Cao (chỉ tập trung vào chuyển đổi nhánh) |
Độ an toàn | Thấp (có thể gây mất dữ liệu nếu dùng sai) | Cao (ít rủi ro hơn) |