Không chỉ là danh sách lệnh Git, đây là cách một nhóm sinh viên dùng Git để không giẫm chân nhau, không mất code.
0 bình luận
Đăng nhập để tham gia thảo luận
Tài khoản giúp bảo vệ bình luận và lượt thích khỏi thao tác trùng.
Chưa có bình luận. Hãy mở đầu cuộc trò chuyện.
Không phải vì Git khó. Vấn đề thường nằm ở chỗ cả nhóm bắt đầu code trước khi thống nhất cách làm việc chung. Kết quả quen thuộc: một bạn push thẳng lên main, một bạn khác git pull thì báo conflict đỏ lòm, và không ai dám merge vì sợ hỏng code của người khác.
Tin tốt là chỉ cần thống nhất ba điều sau trước buổi code đầu tiên, nhóm đã tránh được phần lớn rắc rối:
Phần còn lại của bài này không chỉ liệt kê lệnh, mà đi qua cả quy trình thực tế và những tình huống hay khiến sinh viên bối rối nhất.
Không cần học thuộc cả bảng lệnh Git ngay từ đầu. Sáu lệnh dưới đây là những gì bạn sẽ gõ nhiều nhất trong một đồ án nhóm.
git clone — tải project về máyDùng khi bạn mới tham gia và repository đã tồn tại trên GitHub.
git clone <repository-url>Mẹo nhỏ: sau khi clone, hãy mở file README.md (nếu có) trước khi code dòng nào — thường nó ghi cách chạy project, biến môi trường cần thiết, hoặc lệnh cài đặt thư viện.
git status — biết mình đang đứng ở đâuLệnh này nên gõ trước mọi hành động khác. Nó cho biết bạn đang ở nhánh nào, file nào đã sửa, file nào đã stage.
git statusThói quen tốt: gõ git status trước khi git add, và gõ lại lần nữa sau khi git add để chắc chắn bạn không quên hoặc thêm nhầm file.
git switch -c — tạo nhánh riêng cho từng việcgit switch -c feature/ten-chuc-nangĐặt tên nhánh theo việc đang làm, không đặt tên theo tên người. feature/login-form dễ hiểu hơn nhiều so với nhanh-cua-minh khi cả nhóm nhìn vào danh sách nhánh trên GitHub.
git add — chọn thay đổi sẽ được lưugit add .Với dự án thật, tránh thói quen git add . một cách vô thức. Hãy chạy git status trước để chắc bạn không vô tình add file .env, file node_modules, hay file cấu hình IDE của riêng mình. Cách an toàn hơn là tạo file .gitignore ngay từ commit đầu tiên, liệt kê những thứ không nên lên GitHub:
node_modules/
.env
.DS_Store
dist/git commit — lưu một mốc thay đổi có ý nghĩagit commit -m "feat: them trang dang nhap"Commit nhỏ và rõ mục đích sẽ giúp cả nhóm dễ dò lại lịch sử khi có bug. Nếu muốn commit message chuyên nghiệp hơn, có thể theo mẫu:
feat: — thêm chức năng mớifix: — sửa lỗirefactor: — sửa cấu trúc code, không đổi hành vidocs: — chỉnh sửa tài liệuMột commit gộp 15 file thay đổi không liên quan gì đến nhau sẽ rất khó review và gần như không thể revert an toàn nếu sau này phát hiện lỗi.
git pull — cập nhật code mới nhất trước khi làm tiếpgit pull origin mainQuy tắc nhỏ nhưng cứu được rất nhiều lần conflict: luôn git pull origin main trước khi tạo nhánh mới, không phải sau khi đã code xong.
Đây là quy trình gọn, phù hợp với đồ án môn học hoặc dự án nhỏ 2–5 người. Mỗi thành viên lặp lại các bước này cho mỗi đầu việc được giao.
main trước khi bắt đầu. Luôn xuất phát từ phiên bản mới nhất, tránh code trên nền code cũ rồi conflict sau này.feature/login-form hoặc fix/header-mobile.git status → git add → git commit. Đừng để đến cuối ngày mới commit một lần duy nhất.git switch main
git pull origin main
git switch -c feature/login-form
# code, kiem tra va commit
git push -u origin feature/login-formgit pullConflict không có nghĩa là bạn làm sai — nó chỉ báo hai người đã sửa cùng một vùng code. Khi Git dừng lại và hiện các ký hiệu <<<<<<<, =======, >>>>>>> trong file, hãy:
git add file đã sửa rồi git commit để hoàn tất việc merge.Nếu không chắc đoạn code bị conflict dùng để làm gì, đừng đoán rồi tự sửa. Hỏi người đã viết đoạn đó, hoặc gọi nhanh 5 phút để cùng quyết định — nhanh hơn nhiều so với việc tự sửa sai rồi tạo thêm bug mới đè lên bug cũ.
mainNếu lỡ commit trực tiếp lên main mà chưa push, có thể chuyển commit đó sang nhánh mới mà không mất code:
git switch -c feature/sua-nham
git switch main
git reset --hard origin/mainLệnh git reset --hard sẽ xóa thay đổi trên nhánh hiện tại, nên chỉ dùng khi chắc chắn code đã được chuyển an toàn sang nhánh mới ở bước trên.
Khi đang code dở mà cần chuyển sang nhánh khác gấp (ví dụ fix bug khẩn), đừng commit code dở dang chỉ để "lưu tạm". Dùng git stash để cất thay đổi sang một chỗ riêng:
git stash
git switch fix/bug-khan
# xu ly xong, quay lai
git switch feature/dang-lam
git stash popThường xảy ra khi hai người cùng làm chung một nhánh. Trước khi push, kéo thay đổi mới nhất về:
git pull origin ten-nhanhXử lý conflict nếu có, rồi push lại. Tránh dùng git push --force trừ khi thật sự hiểu hậu quả — lệnh này có thể ghi đè và xóa mất commit của người khác trên nhánh chung.
Git sẽ bớt đáng sợ khi bạn dùng nó thường xuyên với một quy trình đơn giản, thống nhất từ đầu trong cả nhóm. Bắt đầu với clone, status, switch, add, commit, pull — nắm chắc sáu lệnh này là đủ để làm việc an toàn. Phần quan trọng hơn cả lệnh là thói quen: pull trước khi code, commit nhỏ và rõ ràng, và biến Pull Request thành điểm hẹn để cả nhóm cùng kiểm tra code trước khi đưa vào main.