Git Command

Note về cách dùng git command

Cấu hình

Cấu hình các thông tin khi cài git lần đầu.

git config --global user.name "username"
git config --global user.email "email"
git config --global init.defaultBranch main

💡Cấu hình editor cho commit, rebase, git sẽ mở editor này options: "code --wait, vim, nano"

git config --global core.editor "vim"

Xem lại danh sách Config

git config --list --global

Khởi tạo local repo

Lệnh này tạo thư mục .git bên trong thư mục hiện tại. Thư mục hiện thành một kho lưu trữ Git

git init

Kết nối với kho lưu trữ từ xa (remote)

URL có thể là đường dẫn một thư mục Git

git clone <URL_của_kho_lưu_tr>

Ví dụ clone 1 repo từ GitHub

Đổi tên branch local (master sang main)

0) Khởi tạo & Remote

1) Staging & Commit

2) Sửa commit cuối (amend)

Chỉ dùng khi commit đó chưa push. Nếu đã push → cân nhắc --force-with-lease.

3) Xem lịch sử & khác biệt

4) Branch căn bản

5) Merge (kết nhánh)

6) Rebase (làm thẳng lịch sử)

Mục tiêu: “phát lại” commit của nhánh đang làm trên đỉnh main.

Phản biện: Đang rebase không dùng git pull. Kết thúc sạch rồi mới git push. Nếu nhánh đã push trước đó, sau rebase có thể cần:

Dùng rebase trên nhánh cá nhân. Nhánh shared thì ưu tiên merge.

7) Khôi phục & quay lui

7.1) Khôi phục file lỡ xóa/chỉnh (chưa commit)

7.2) Reset (di chuyển HEAD về commit trước)

Dùng --hard mất dữ liệu chưa commit. Nếu đã push, dùng git revert an toàn hơn:

8) Đồng bộ remote

9) Xử lý conflict: Merge vs Rebase

  • Trong merge:

    1. git merge <branch>

    2. sửa conflict → git add .

    3. git commit (hoặc git merge --continue trên Git mới)

  • Trong rebase:

    1. git rebase <base>

    2. sửa conflict → git add .

    3. git rebase --continue

    4. hủy rebase: git rebase --abort

Đừng chạy git pull rồi lại git rebase --continue. Hai quy trình khác nhau.

10) Cherry-pick & Stash

Cherry-pick commit chưa ổn định có thể gây xung đột dây chuyền. Stash nhiều lớp dễ rối — đặt message: git stash push -m "desc".

11) Các lệnh “tà đạo” (cân nhắc kỹ)

  • git push --force: ghi đè remote. Thay bằng --force-with-lease để không đè mất việc của người khác.

  • git rebase -i trên nhánh đã share: chỉ làm khi mọi người đồng thuận.

  • git reset --hard: tránh dùng trên nhánh share; local thì luôn chắc chắn đã backup.

  • git reflog delete, git gc: có thể làm khó việc cứu commit. Trước khi “dọn rác”, hãy chắc chắn team không cần các ref cũ.

12) Mẫu quy trình “sạch” khi làm feature

Last updated