Series Git CLI Thực chiến #2: Bắt tay vào việc – Khởi tạo, Lưu trữ và Hành trình của một File
Chào mừng quay trở lại "xưởng mộc".
Ở Bài 1, chúng ta đã nắm được lý thuyết về 3 khu vực thần thánh của Git. Hôm nay, chúng ta sẽ mở Terminal lên và thực thi những dòng lệnh đầu tiên để đưa một dự án từ chỗ "không có gì" vào vòng kiểm soát của cỗ máy thời gian.
Để mọi thứ thực tế nhất, hãy tưởng tượng anh em đang bắt tay vào viết một Microservice mới xử lý giao dịch vé (Transaction Service) cho hệ thống AFC bằng Golang.
1. Phép màu khởi tạo: git init
Mở Terminal và tạo một thư mục mới cho dự án của chúng ta:
mkdir afc-transaction-service
cd afc-transaction-service
Hiện tại, đây chỉ là một thư mục trống rỗng, vô tri vô giác trên hệ điều hành Linux hoặc Windows. Để đánh thức Git, anh em gõ lệnh:
git init
Ngay lập tức, Git sẽ âm thầm tạo ra một thư mục ẩn có tên là .git. Đây chính là "trái tim" và "não bộ" của cỗ máy thời gian. Toàn bộ lịch sử, cấu hình, và các nhánh (branch) đều được nhét hết vào cái thư mục ẩn này. Nếu anh em lỡ tay xóa thư mục .git, dự án sẽ biến lại thành một thư mục bình thường và toàn bộ lịch sử bay màu.
2. Chiếc radar định vị: git status
Trong suốt quá trình dùng Git CLI, lệnh anh em phải gõ nhiều nhất không phải là commit hay push, mà chính là lệnh này:
git status
Nó là chiếc radar báo cho anh em biết: File nào đang bị thay đổi? File nào đã được nhét vào hộp đóng gói (Staging)? File nào đang bị Git phớt lờ?
Bây giờ, hãy tạo file code đầu tiên cho dự án:
touch main.go
Gõ lại git status, anh em sẽ thấy dòng chữ màu đỏ báo hiệu Untracked files: main.go. Git đang nói rằng: "Ê, có một file mới trong xưởng mộc kìa, nhưng tôi chưa theo dõi nó đâu nhé!".
3. Đóng gói vào thùng: git add
Để đưa file main.go từ Working Directory (Xưởng mộc) vào Staging Area (Khu vực đóng gói), chúng ta dùng lệnh:
git add main.go
Gõ lại git status, anh em sẽ thấy dòng chữ chuyển sang màu xanh lá: Changes to be committed: new file: main.go. File đã được đưa vào thùng carton, sẵn sàng để niêm phong.
Mẹo thực chiến: Nếu anh em sửa cùng lúc 10 file Go và muốn đưa tất cả vào hộp đóng gói, đừng gõ tên từng file. Hãy dùng lệnh cực mạnh này:
git add .
Dấu chấm . đại diện cho "tất cả mọi thứ trong thư mục hiện tại".
4. Niêm phong lịch sử: git commit
Khi đồ đã ở trong thùng (Staging Area), bước cuối cùng là dán băng keo, ghi chú lại và ném nó vào kho lưu trữ (Local Repository).
git commit -m "feat: khởi tạo luồng xử lý giao dịch vé offline"
- Tham số -m (message): Cho phép anh em viết lời nhắn trực tiếp trên dòng lệnh.
- Nghệ thuật viết Message: Đừng bao giờ viết những câu vô nghĩa như git commit -m "fix bug" hay git commit -m "update". Khi hệ thống có hàng ngàn commit, nhìn vào những câu đó anh em sẽ không biết mình đã làm gì. Hãy dùng chuẩn Conventional Commits (như feat:, fix:, chore:, refactor:) để team đọc là hiểu ngay tác vụ đó làm gì.
5. Cỗ máy thời gian hoạt động: git log
Để chiêm ngưỡng thành quả, anh em gõ lệnh xem lịch sử:
git log
Màn hình sẽ hiển thị thông tin chi tiết: Ai là người commit, thời gian commit (Timestamp), và một chuỗi mã băm (Hash) dài ngoằng màu vàng (VD: commit 3a4b5c6...). Chuỗi Hash này chính là "tọa độ thời gian" độc nhất vô nhị. Khi hệ thống gặp sự cố, anh em sẽ dùng chính tọa độ này để "quay xe" đưa mã nguồn về đúng trạng thái lúc đó.
Tổng kết Bài 2
Chỉ với 4 lệnh cốt lõi (init, status, add, commit), anh em đã nắm được chu trình làm việc hàng ngày của một kỹ sư. Quy trình này sẽ lặp đi lặp lại hàng nghìn lần trong sự nghiệp: Gõ code ➔ git status ➔ git add . ➔ git commit -m "..."
Nhưng code hiện tại vẫn chỉ nằm an toàn trên máy của anh em. Nếu cái máy tính bị hỏng, code vẫn mất như thường. Ở bài tiếp theo, chúng ta sẽ kết nối với thế giới bên ngoài (GitHub/GitLab) thông qua Remote Repository và các lệnh đẩy/kéo mã nguồn đỉnh cao.
All rights reserved