Đâ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é .