Cài đặt và cấu hình ⤢ git configĐặt tên, email hoặc trình soạn thảo của bạn một lần cho mọi repo. git config --global user.name "Ada" ⤢ git config --global aliasĐặt tên viết tắt cho một lệnh bạn hay gõ. git config --global alias.co checkout ⤢ git initTạo một kho mới trong thư mục hiện tại. git init ⤢ git cloneSao chép một kho từ xa về máy của bạn. git clone git@github.com:org/repo.git ⤢ git clone --depthChỉ sao chép các commit mới nhất của một nhánh duy nhất. git clone --depth 1 --single-branch git@github.com:org/repo.git Cơ bản về snapshot ⤢ git statusHiện những gì đã staged, đã sửa và chưa được theo dõi. git status -sb ⤢ git addStage thay đổi để chúng vào commit tiếp theo. git add src/app.ts ⤢ git add -pXem thay đổi từng phần và chỉ stage những phần bạn chấp nhận. git add -p src/app.ts ⤢ git add -uStage thay đổi của mọi tệp đang được theo dõi mà không thêm tệp mới. git add -u ⤢ git commitGhi lại các thay đổi đã stage thành một commit mới. git commit -m "fix: null check" ⤢ git commit --amendThay thế commit cuối bằng một commit đã sửa. git commit --amend -m "fix: handle empty input" ⤢ git diffHiện thay đổi chưa stage, hoặc thay đổi đã stage với --staged. git diff --staged ⤢ git diff HEADHiện mọi thay đổi kể từ commit cuối, dù đã stage hay chưa. git diff HEAD Nhánh và hợp nhất ⤢ git branchLiệt kê, tạo hoặc xóa nhánh. git branch feature-x ⤢ git branch -dXóa một nhánh đã hợp nhất (-D ép xóa, -a liệt kê mọi nhánh). git branch -d feature-x ⤢ git switchChuyển nhánh (lệnh thay thế hiện đại cho checkout). git switch feature-x ⤢ git switch -cTạo nhánh mới và chuyển sang nó trong một bước. git switch -c feature-x ⤢ git checkoutChuyển nhánh hoặc khôi phục tệp (lệnh cũ, phạm vi rộng hơn). git checkout feature-x ⤢ git mergeĐưa thay đổi của nhánh khác vào nhánh hiện tại. git merge feature-x ⤢ git merge --abortHủy một lệnh hợp nhất xung đột và trả nhánh về trạng thái trước đó. git merge --abort ⤢ git rebasePhát lại các commit của nhánh hiện tại trên đỉnh một nhánh khác. git rebase main ⤢ git rebase -iGộp, sắp xếp lại hoặc sửa các commit trong khi phát lại chúng. git rebase -i main ⤢ git cherry-pickSao chép một commit duy nhất từ nhánh khác sang nhánh này. git cherry-pick a1b2c3d ⤢ git tagĐánh dấu một commit bằng nhãn dễ đọc như phiên bản. git tag -a v1.2.0 ⤢ git worktreeCheckout một nhánh khác trong một thư mục riêng cùng lúc. git worktree add ../repo-feature feature-x Xem lịch sử ⤢ git logDuyệt lịch sử commit. git log --oneline --graph --decorate ⤢ git log --allDuyệt lịch sử từ mọi nhánh, không chỉ nhánh hiện tại. git log --oneline --graph --all ⤢ git showHiện diff đầy đủ và thông điệp của một commit. git show HEAD ⤢ git blameHiện ai là người cuối cùng sửa từng dòng của một tệp. git blame src/app.ts ⤢ git reflogHiện mọi commit mà HEAD từng trỏ đến, kể cả cái đã bị bỏ. git reflog ⤢ git bisectTìm kiếm lịch sử theo từng nửa để tìm commit gây lỗi. git bisect start ⤢ git shortlogTóm tắt commit theo tác giả. git shortlog -sn ⤢ git describeĐặt tên commit hiện tại bằng cách đếm từ tag gần nhất. git describe --tags Cộng tác từ xa ⤢ git remoteLiệt kê hoặc thêm các kho từ xa. git remote add origin <url> ⤢ git remote -vLiệt kê các remote kèm URL fetch và push của chúng. git remote -v ⤢ git fetchTải xuống thay đổi từ xa mà không đổi nhánh của bạn. git fetch origin ⤢ git fetch --pruneTải xuống thay đổi từ xa và bỏ tham chiếu đến nhánh từ xa đã xóa. git fetch --prune ⤢ git pullFetch và hợp nhất các thay đổi từ xa của nhánh hiện tại. git pull --rebase ⤢ git pushGửi commit cục bộ lên remote. git push -u origin feature-x ⤢ git push --force-with-leaseGhi đè nhánh từ xa, nhưng chỉ khi chưa ai push trước. git push --force-with-lease origin feature-x Hoàn tác thay đổi ⤢ git restoreBỏ thay đổi trong cây làm việc, hoặc unstage chúng. git restore src/app.ts ⤢ git restore --stagedUnstage một tệp và giữ các chỉnh sửa trong cây làm việc. git restore --staged src/app.ts ⤢ git resetDi chuyển đỉnh nhánh hiện tại và tùy chọn cả index. git reset --hard HEAD~1 ⤢ git revertThêm một commit mới để hoàn tác commit trước đó (an toàn khi chia sẻ). git revert HEAD ⤢ git cleanXóa các tệp và thư mục chưa được theo dõi. git clean -fd Cất tạm (stash) ⤢ git stashLưu công việc chưa commit và đặt lại cây làm việc. git stash -u ⤢ git stash listHiện mọi stash bạn đã lưu. git stash list ⤢ git stash applyÁp dụng lại một stash và vẫn giữ nó trong danh sách. git stash apply stash@{1} ⤢ git stash dropXóa một stash bạn không còn cần. git stash drop stash@{1} ⤢ git stash popÁp dụng lại stash gần nhất và bỏ nó khỏi danh sách. git stash pop Tệp và submodule ⤢ git mvDi chuyển hoặc đổi tên một tệp và stage thay đổi. git mv old.ts src/new.ts ⤢ git rmXóa một tệp và stage việc xóa. git rm src/old.ts ⤢ git submoduleTheo dõi một kho khác như một thư mục bên trong kho này. git submodule add git@github.com:org/lib.git lib ⤢ git sparse-checkoutChỉ checkout những thư mục bạn nêu tên từ một kho lớn. git sparse-checkout set src docs ⤢ git archiveXuất cây của một commit thành tệp tar hoặc zip. git archive -o repo.zip HEAD