Cài Git xong rồi… nhưng chưa dùng được gì

Nhiều bạn mới học Git hay gặp cảnh này: cài xong, gõ git commit lần đầu thì Git hỏi ngược lại “bạn là ai?” — và không biết phải trả lời như thế nào.


Cài Git xong rồi… nhưng chưa dùng được gì

Nhiều bạn mới học Git hay gặp cảnh này: cài xong, gõ git commit lần đầu thì Git hỏi ngược lại “bạn là ai?” — và không biết phải trả lời như thế nào. Hoặc clone repo về thì bị lỗi authentication, nhập password mãi không xong.

Bài này giải quyết đúng điểm đó. Sau khi đọc xong, bạn sẽ có một môi trường Git hoàn chỉnh: cài đặt, cấu hình danh tính, kết nối SSH với GitHub/GitLab — và sẵn sàng bắt đầu làm việc thật sự.

Cài đặt Git

Windows

Tải Git for Windows tại git-scm.com. Trong quá trình cài, có vài lựa chọn quan trọng:

  • Default editor: chọn VS Code nếu bạn đang dùng, hoặc Notepad++ — tránh chọn Vim nếu chưa quen
  • LINE ENDING conversions: chọn “Checkout Windows-style, commit Unix-style” — đây là lựa chọn an toàn nhất khi làm việc với team đa nền tảng
  • Các mục còn lại giữ mặc định

Sau khi cài, mở Git Bash (đã được cài kèm) và kiểm tra:

git --version
# git version 2.44.0.windows.1

macOS

Cách nhanh nhất là dùng Homebrew:

brew install git

Nếu chưa có Homebrew, có thể cài qua Xcode Command Line Tools:

xcode-select --install

macOS mới thường đã có Git sẵn, nhưng phiên bản cũ. Homebrew cho bạn bản mới nhất.

Linux (Ubuntu/Debian)

sudo apt update
sudo apt install git

Fedora/RHEL:

sudo dnf install git

Cấu hình danh tính — Bước không thể bỏ qua

Git cần biết bạn là ai trước khi cho phép commit. Đây không phải thông tin đăng nhập — mà là chữ ký đính kèm mỗi commit bạn tạo ra. Team của bạn sẽ thấy tên này trong git log.

git config --global user.name "Nguyen Van A"
git config --global user.email "nguyenvana@example.com"

Dùng đúng email bạn đăng ký GitHub/GitLab — GitHub dùng email này để liên kết commit với tài khoản của bạn (avatar, contribution graph, v.v.).

Cấu hình editor mặc định

Khi git cần bạn nhập nội dung (ví dụ: commit message dài, rebase interactive), nó sẽ mở editor này:

# VS Code
git config --global core.editor "code --wait"

# Vim
git config --global core.editor "vim"

# Nano (dễ hơn Vim cho người mới)
git config --global core.editor "nano"

Nếu dùng VS Code, flag --wait rất quan trọng — nó bảo Git chờ cho đến khi bạn đóng tab trong VS Code mới tiếp tục.

Cấu hình mặc định branch name

Git mới (từ 2.28) cho phép đặt tên branch mặc định. Hiện nay chuẩn ngành dùng main thay vì master:

git config --global init.defaultBranch main

Kiểm tra toàn bộ cấu hình

git config --list --global

Cấu hình được lưu ở file ~/.gitconfig. Bạn có thể mở trực tiếp để xem:

cat ~/.gitconfig

Output sẽ trông như thế này:

[user]
    name = Nguyen Van A
    email = nguyenvana@example.com
[core]
    editor = code --wait
[init]
    defaultBranch = main

Ba cấp độ cấu hình Git

Git có 3 cấp cấu hình, ưu tiên từ cao xuống thấp:

Cấp Flag Lưu ở đâu Phạm vi
Local --local .git/config Chỉ repo hiện tại
Global --global ~/.gitconfig Tất cả repo của user
System --system /etc/gitconfig Tất cả user trên máy

Ví dụ thực tế: bạn làm freelance cho 2 công ty khác nhau — 1 cái muốn dùng email cá nhân, 1 cái muốn email công ty. Giải pháp:

# Cấu hình global: email cá nhân (mặc định)
git config --global user.email "ca-nhan@gmail.com"

# Vào repo của công ty, override local
cd ~/work/company-project
git config --local user.email "ten@company.com"

Kết nối SSH với GitHub/GitLab

Đây là phần nhiều người ngại nhất — nhưng thực ra chỉ cần làm một lần. Sau đó bạn push/pull không cần nhập password nữa.

Tại sao SSH thay vì HTTPS?

GitHub đã tắt xác thực bằng password thường từ 2021. Nếu dùng HTTPS, bạn phải dùng Personal Access Token — dài và khó nhớ. SSH tiện hơn nhiều: generate một lần, dùng mãi.

Bước 1: Tạo SSH key

ssh-keygen -t ed25519 -C "nguyenvana@example.com"

Terminal sẽ hỏi:

  • Enter file to save the key: nhấn Enter để dùng đường dẫn mặc định (~/.ssh/id_ed25519)
  • Enter passphrase: có thể để trống, hoặc đặt passphrase để bảo mật hơn

Sau khi chạy, bạn sẽ có 2 file:

  • ~/.ssh/id_ed25519 — private key, KHÔNG bao giờ chia sẻ
  • ~/.ssh/id_ed25519.pub — public key, cái này sẽ add vào GitHub

Bước 2: Thêm vào SSH agent

# Khởi động SSH agent
eval "$(ssh-agent -s)"

# Thêm key vào agent
ssh-add ~/.ssh/id_ed25519

Trên macOS, thêm vào ~/.ssh/config để key tự động load khi khởi động:

Host github.com
  AddKeysToAgent yes
  UseKeychain yes
  IdentityFile ~/.ssh/id_ed25519

Bước 3: Copy public key

# macOS
pbcopy < ~/.ssh/id_ed25519.pub

# Linux
cat ~/.ssh/id_ed25519.pub
# Rồi copy thủ công

# Windows (Git Bash)
clip < ~/.ssh/id_ed25519.pub

Bước 4: Add vào GitHub

  1. Vào GitHub → Settings → SSH and GPG keys → New SSH key
  2. Title: đặt tên dễ nhận ra, ví dụ “MacBook Pro 2024” hoặc “Dell Work Laptop”
  3. Key type: Authentication Key
  4. Key: paste public key vừa copy
  5. Click Add SSH key

Bước 5: Kiểm tra kết nối

ssh -T git@github.com

Nếu thành công sẽ thấy:

Hi nguyenvana! You've successfully authenticated, but GitHub does not provide shell access.

Đừng lo về dòng “does not provide shell access” — đó là bình thường, Git hoạt động qua SSH protocol riêng.

GitLab thì sao?

Tương tự GitHub, chỉ khác URL kiểm tra:

ssh -T git@gitlab.com
# Welcome to GitLab, @nguyenvana!

Làm việc với nhiều tài khoản Git

Trường hợp hay gặp: bạn có tài khoản GitHub cá nhân và tài khoản GitHub/GitLab công ty, cần dùng trên cùng 1 máy.

Tạo thêm SSH key thứ hai:

ssh-keygen -t ed25519 -C "ten@company.com" -f ~/.ssh/id_ed25519_work

Thêm vào ~/.ssh/config:

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519

Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_work

Khi clone repo của công ty, dùng host alias thay vì github.com:

# Thay vì:
git clone git@github.com:company/repo.git

# Dùng:
git clone git@github-work:company/repo.git

Một số alias tiện dụng để bắt đầu

Git alias giúp bạn gõ lệnh ngắn hơn. Đây là một số alias mình hay dùng:

git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.lg "log --oneline --graph --decorate --all"

Sau đó bạn có thể gõ git st thay vì git status, hoặc git lg để xem lịch sử commit dạng đẹp.

Lỗi hay gặp khi mới setup

“Permission denied (publickey)”

SSH key chưa được add đúng. Kiểm tra lại:

ssh -vT git@github.com

Flag -v hiện chi tiết quá trình kết nối, giúp xác định đang dùng key nào và lỗi ở đâu.

“Please tell me who you are”

Chưa cấu hình user.nameuser.email. Chạy lại:

git config --global user.name "Tên của bạn"
git config --global user.email "email@example.com"

“warning: LF will be replaced by CRLF”

Cảnh báo về line ending trên Windows. Không phải lỗi — nhưng nếu muốn tắt:

git config --global core.autocrlf true   # Windows
git config --global core.autocrlf input  # macOS/Linux

Tổng kết

Bạn vừa hoàn thành setup Git từ đầu đến cuối. Checklist nhanh:

  • ✅ Cài Git và kiểm tra phiên bản
  • ✅ Cấu hình user.nameuser.email
  • ✅ Chọn editor mặc định
  • ✅ Tạo SSH key và kết nối với GitHub/GitLab
  • ✅ Kiểm tra bằng ssh -T git@github.com

Môi trường đã sẵn sàng. Bài tiếp theo chúng ta sẽ đi vào trung tâm của Git: Repository, Working Tree và Staging Area — 3 khái niệm cốt lõi mà nếu hiểu đúng ngay từ đầu, bạn sẽ không bao giờ bị “lạc” khi dùng Git nữa.

Biên Tập Viên
Biên Tập Viên

Tác giả tại Pioneer — nền tảng kiến thức thực chiến về Công nghệ & Tài chính.

Bình luận (0)

Chưa có bình luận nào. Hãy là người đầu tiên!