Nội dung

Tổng hợp lệnh Git cơ bản hay dùng - Git cheat sheet

Đây là bài tổng hợp các lệnh cơ bản trong Git để khi mà quên thì tham khảo cho nhanh.Với một vài khái niệm cơ bản

Một vài thông tin

Stagging/index là khu vực đánh dấu trạng thái của tập tin, thư mục chuẩn bị cho quá trình commit

Working directory là thư mục lớn nhất của dự án chứa toàn bộ mã nguồn và thư mục ẩn .git

Git cơ bản (basic)

Câu lệnh git Mục đích thực hiện hành động
git config --list Hiển thị toàn bộ thiết lập Git
git config --list --show-origin Hiển thị chi tiết hơn toàn bộ thiết lập Git
git config --global user.name "username" Thiết lập username Git cho tài khoản đang sử dụng máy tính
git config --global user.email [email protected] Thiết lập email Git cho tài khoản đang sử dụng máy tính
git config user.name "username" Thiết lập username Git cho dự án hiện tại
git config user.email [email protected] Thiết lập email Git cho dự án hiện tại
git config --global --edit Mở tập tin config trên giao diện chỉnh sửa
cd project-existing / git init Khởi tạo Git cho local repo
git clone https://github.com/user/repository.git Nhân bản một thư mục remote repo về máy tính
git clone https://github.com/user/repository.git . Nhân bản một remote repo về máy tính nằm trong thư mục hiện tại
git add <tên_file_hoặc_thư_mục> Thêm tập tin vào trạng thái thay đổi
git add . Thêm toàn bộ tập tin, thư mục trong local repo vào trạng thái thay đổi
git commit -m "Message" Lưu lại toàn bộ thay đổi trong trạng thái với ghi chú “Message”

Git phục hồi (undoing)

Câu lệnh git Mục đích thực hiện hành động
git revert <tên_commit> Tạo một commit mới phục hồi lại toàn bộ những thay đổi trong <tên_commit>
git reset <tên_file> Loại bỏ file khỏi stagging/index. Không thay đổi nội dung file
git clean -n Hiển thị files sẽ bị loại bỏ khỏi working area gắn cùng cờ -f hoặc -n

Git sửa lại lịch sử (rewrite history)

Câu lệnh git Mục đích thực hiện hành động
git commit --amend -m "New message" Đổi ghi chú cho commit cuối cùng
git rebase <base> Gắn nhánh đã hoàn thành vào nhánh gốc
git rebase -i <base> Gắn nhánh hoàn thành công việc vào nhánh gốc và có cửa sổ dòng lệnh để đưa commit vào
git reflog Danh sách theo thứ tự các commit vào HEAD và toàn bộ lịch sử đằng sau nó

Git với nhánh (branch)

Câu lệnh git Mục đích thực hiện hành động
git branch Liệt kê toàn bộ nhánh trong local repo
git branch -a Liệt kê toàn bộ nhánh trong local & remote repo
git checkout -b <tên_branch> Tạo và chuyển qua làm việc trên nhánh mới
git checkout <tên_branch Chuyển qua nhánh <tên_branch> đã có từ trước
git push origin <tên_branch> Đẩy push mã nguồn từ nhánh lên remote repo
git branch -m <tên_branch_mới> Thay đổi tên của nhánh hiện tại
git branch -d <tên_branch> Xóa nhánh tại local repo
git push origin --delete <tên_branch> Xóa nhánh trên remote repo

Git remote repo

Câu lệnh git Mục đích thực hiện hành động
git remote add <name> <url> Thêm remote repo với tên ngắn và link
git fetch <remote> <branch> Cập nhật thay đổi trên 1 nhánh nào đó trên remote repo
git fetch <remote> Cập nhật thay đổi toàn bộ nhánh trên remote repo
git pull <remote> Cập nhật nhánh hiện tại trên remote repo và ngay lập tức hợp nhất với local repo
git pull --rebase <remote> Cập nhật nhánh hiện tại trên remote repo và ngay lập tức hợp nhất với local repo nhưng dùng rebase
git push <remote> <branch> Đẩy dự án đã commit lên remote repo và tạo nhánh <branch> nếu chưa có trên remote repo
git push <remote> --force Đẩy dự án và ghi đè toàn bộ nhánh ở remote bằng một nhánh chính
git push <remote> --all Đẩy toàn bộ nhánh local repo lên một remote repo
git push <remote> --tags Sẽ gắn thẻ tag ở local repo lên remote repo khi đẩy dự án lên

Git log (lịch sử git)

Câu lệnh git Mục đích thực hiện hành động
git log -<limit> Xem giới hạn lịch sử commit. Ví dụ git log -5
git log --oneline Xem lịch sử commit với mỗi dòng là 1 commit
git log -p Xem đầy đủ sự khác nhau của mỗi commit
git log --stat Xem lịch sử có thống kê số lượng dòng đã được thêm, xóa vào tập tin nào đó
git log --graph --decorate Xem lịch sử commit dạng biểu đồ có tên nhánh, thẻ (tag) trong lịch sử commit
git log --author ="<tên_dev" Xem lịch sử commit của dev nào đó git log --author="John|Mary"
git log --grep="<key_work>" Xem lịch sử commit có lời ghi chú trùng với key_work git log --grep="first commit"
git log -- <file> Xem lịch sử commit có bao gồm <file> không
git log <since>..<until> Xem lịch sử commit trong khoảng thời gian git log --since="2021-5-1" --until="2021-5-4"

Git diff (Xem khác biệt)

Câu lệnh git Mục đích thực hiện hành động
git diff HEAD Xem khác biệt trong dự án và commit gần nhất
git diff --cached Xem khác biệt giữa stagging/index và commit gần nhất

Git reset

Câu lệnh git Mục đích thực hiện hành động
git reset Trả về commit gần đây nhất trong stagging/index. Còn working directory không bị thay đổi
git reset --hard Trả về commit gần đây nhất của cả stagging/index và working directory
git reset <tên_commit> Trả về <tên_commit> của stagging/index. working directory không bị thay đổi
git reset --hard <tên_commit> Trả về <tên_commit> của cả stagging/index và working directory
Lời nhắn nhủ
Trên đây là toàn bộ bài viết, các bạn cứ nhiệt tình bình luận, góp ý  vào bên dưới nếu có bất cứ thắc mắc nào nhé .