Cài đặt Git
Xem thửVấn đề cần giải quyết
Bạn vừa nhận một máy mới, mở terminal gõ git --version và thấy command not found. Sau khi cài xong, bạn commit lần đầu thì Git từ chối với thông báo "Author identity unknown". Hai lỗi này đều là bước chuẩn bị bị bỏ sót: cài Git và khai báo danh tính.
Sau bài này, bạn có thể
- Cài Git trên macOS, Windows hoặc Linux và kiểm tra bằng
git --version. - Khai báo tên, email và nhánh mặc định bằng
git config --global. - Giải thích vì sao thiếu danh tính thì không commit được.
Cài đặt theo hệ điều hành
| Hệ điều hành | Cách cài | Ghi chú |
|---|---|---|
| macOS | brew install git | macOS thường kèm sẵn qua Command Line Tools; kiểm tra bằng git --version trước |
| Windows | Bộ cài Git for Windows từ trang chính thức | Kèm Git Bash, terminal giả lập Unix |
| Debian, Ubuntu | sudo apt update && sudo apt install git | |
| Fedora, RHEL | sudo dnf install git |
Cách cài khác nhau, cách kiểm tra giống nhau: chạy git --version và thấy số phiên bản.
Cấu hình lần đầu
Ngay sau khi cài, khai báo danh tính. Thông tin này gắn vào mọi commit bạn tạo:
git config --global user.name "Nguyen Van A"
git config --global user.email "a.nguyen@example.com"
git config --global init.defaultBranch main
Thử và quan sát: từ máy trống tới commit đầu tiên
Hãy dự đoán: nếu bạn chạy git commit khi chưa khai báo user.name và user.email, Git sẽ làm gì? Chạy mô phỏng, rồi bấm nút biến thể để kiểm chứng.
Đang tải Animation…
Bảng bước (bản đọc tĩnh của mô phỏng)
| Bước | Lệnh | Điều xảy ra |
|---|---|---|
| 1 | git --version | Máy chưa cài Git nên shell báo không tìm thấy lệnh. |
| 2 | sudo apt install git | Cài Git bằng trình quản lý gói (macOS dùng brew, Windows dùng Git for Windows). |
| 3 | git --version | Lệnh in ra số phiên bản: Git đã sẵn sàng. |
| 4 | git config --global user.name "Nguyen Van A" | Khai báo tên. Giá trị được ghi vào tệp cấu hình của người dùng. |
| 5 | git config --global user.email "a.nguyen@example.com" | Khai báo email, cũng ghi vào cùng tệp cấu hình. |
| 6 | git config --global init.defaultBranch main | Chọn main làm tên nhánh đầu tiên của mọi kho mới. |
| 7 | git init demo && cd demo | Tạo kho mới. Nhánh ban đầu lấy tên từ cấu hình. |
| 8 | git commit --allow-empty -m "Commit đầu tiên" | Commit mang tên và email đã cấu hình. HEAD trỏ vào nhánh main. |
Biến thể: Quên khai báo danh tính
| Bước | Lệnh | Điều xảy ra |
|---|---|---|
| 1 | git init demo && cd demo | Tạo kho mới trên một máy chưa cấu hình danh tính. |
| 2 | git commit --allow-empty -m "Commit đầu tiên" | Git không biết bạn là ai nên từ chối tạo commit. |
| 3 | git config --global user.name "Nguyen Van A" | Khai báo tên. |
| 4 | git config --global user.email "a.nguyen@example.com" | Khai báo email. |
| 5 | git commit --allow-empty -m "Commit đầu tiên" | Lần này commit thành công và mang đúng tác giả. |
Giải đáp. Git từ chối tạo commit và in "Author identity unknown", vì mỗi commit phải ghi tác giả. Sau khi khai báo, commit thành công và hiển thị đúng Author. Cờ --global ghi vào tệp cấu hình của người dùng (thường là ~/.gitconfig), nên áp dụng cho mọi kho trên máy; kho mới dùng main làm nhánh đầu tiên nhờ init.defaultBranch.
Kiểm tra lại cấu hình bất cứ lúc nào:
git config --list
git --version
Kết quả git config --list có các dòng như user.name=Nguyen Van A và init.defaultBranch=main.
Hiểu lầm thường gặp
- "Đổi cấu hình sẽ sửa các commit cũ." Không. Cấu hình chỉ ảnh hưởng commit và kho tạo sau đó; commit cũ giữ nguyên tác giả đã ghi.
- "Email trong Git phải là email đăng nhập GitHub." Git chỉ ghi chuỗi bạn khai báo. Nền tảng như GitHub dùng email này để gắn commit vào tài khoản, nên nên dùng đúng email đã xác minh.
- "Phải cấu hình lại ở mỗi kho." Với
--globalthì không; chỉ cần cấu hình riêng nếu một kho cần danh tính khác.
Tự kiểm tra
- Lệnh nào kiểm tra Git đã cài đúng?
- Vì sao
git commitbáo "Author identity unknown"? - Bạn cần email công ty riêng cho một kho. Làm sao không ảnh hưởng kho khác?
Đáp án gợi ý. (1) git --version. (2) Chưa có user.name và user.email nên Git không biết ghi tác giả nào. (3) Chạy git config user.email ... không có --global bên trong kho đó (bài git config sẽ nói rõ các mức cấu hình).
Điều cần nhớ
- Cài khác nhau, kiểm tra giống nhau:
git --version. - Danh tính (
user.name,user.email) là điều kiện để commit. --globaláp dụng cho mọi kho trên máy; commit cũ không bị đổi.- Bài sau: dùng SSH để không phải nhập mật khẩu mỗi lần.
Nguồn tham khảo
Pro Git, chương 1.5 "Installing Git" và 1.6 "First-Time Git Setup" (git-scm.com/book).