Git Cheat Sheet - 50 lệnh Git bạn nên biết

Git là một hệ thống kiểm soát phiên bản phân tán giúp các nhà phát triển cộng tác trong các dự án ở mọi quy mô.

Linus Torvalds, nhà phát triển nhân Linux, đã tạo ra Git vào năm 2005 để giúp kiểm soát sự phát triển của nhân Linux.

Hệ thống kiểm soát phiên bản phân tán là gì?

Hệ thống kiểm soát phiên bản phân tán (distributed version control system) là một hệ thống giúp bạn theo dõi những thay đổi bạn đã thực hiện đối với các tệp trong dự án của mình.

Lịch sử thay đổi này tồn tại trên máy cục bộ của bạn và cho phép bạn hoàn nguyên về phiên bản trước đó của dự án một cách dễ dàng trong trường hợp có sự cố.

Git giúp cộng tác dễ dàng. Mọi người trong nhóm có thể giữ một bản sao lưu đầy đủ các kho lưu trữ mà họ đang làm việc trên máy cục bộ của họ. Sau đó, nhờ một máy chủ bên ngoài như BitBucket, GitHub hoặc GitLab, họ có thể lưu trữ kho lưu trữ một cách an toàn ở một nơi duy nhất.

Bằng cách này, các thành viên khác nhau trong nhóm có thể sao chép nó cục bộ và mọi người đều có cái nhìn tổng quan rõ ràng về tất cả các thay đổi được thực hiện bởi cả nhóm.

Git có nhiều lệnh khác nhau mà bạn có thể sử dụng. Và tôi thấy rằng có 50 lệnh Git được mọi người sử dụng thường xuyên nhất (và do đó chúng hữu ích nhất để ghi nhớ).

Vì vậy, tôi đã viết chúng ra và nghĩ rằng sẽ rất tốt nếu chia sẻ chúng với cộng đồng. Tôi hy vọng bạn thấy chúng hữu ích - Hãy tận hưởng.

Cách kiểm tra cấu hình Git của bạn

Lệnh bên dưới trả về danh sách thông tin cấu hình git của bạn bao gồm tên người dùng và email:

git config -l

Cách thiết lập tên người dùng Git của bạn

Với lệnh dưới đây, bạn có thể cấu hình tên người dùng của mình:

git config --global user.name "Fabio"

Cách thiết lập email người dùng Git của bạn

Lệnh này cho phép bạn thiết lập địa chỉ email người dùng mà bạn sẽ sử dụng trong các commit của mình.

git config --global user.email "signups@fabiopacifici.com"

Cách lưu thông tin đăng nhập của bạn vào bộ nhớ cache trong Git

Bạn có thể lưu trữ thông tin đăng nhập trong bộ nhớ cache để không phải nhập chúng mỗi lần. Chỉ cần sử dụng lệnh này:

git config --global credential.helper cache

Cách khởi tạo repo Git

Mọi thứ bắt đầu từ đây. Bước đầu tiên là khởi tạo một kho Git mới cục bộ trong thư mục gốc dự án của bạn. Bạn có thể làm như vậy bằng lệnh dưới đây:

git init

Cách thêm tệp vào vùng tổ chức trong Git

Lệnh dưới đây sẽ thêm một tệp vào vùng tổ chức. Chỉ cần thay thế filename_here bằng tên của tệp bạn muốn thêm vào vùng tổ chức.

git add filename_here

Cách thêm tất cả các tệp trong vùng tổ chức trong Git

Nếu bạn muốn thêm tất cả các tệp trong dự án của mình vào vùng tổ chức, bạn có thể sử dụng ký tự đại diện . và mọi tệp sẽ được thêm cho bạn.

git add .

Cách chỉ thêm một số tệp nhất định vào vùng tổ chức trong Git

Với dấu hoa thị (*) trong lệnh bên dưới, bạn có thể thêm tất cả các tệp bắt đầu bằng 'fil' vào vùng tổ chức.

git add fil*

Cách kiểm tra trạng thái của kho lưu trữ trong Git

Lệnh này sẽ hiển thị trạng thái của kho lưu trữ hiện tại bao gồm các tệp theo giai đoạn, không theo giai đoạn và chưa được theo dõi.

git status

Cách thực hiện các thay đổi trong trình chỉnh sửa trong Git

Lệnh này sẽ mở một trình soạn thảo văn bản trong terminal, nơi bạn có thể viết một commit message đầy đủ.

Commit message bao gồm một bản tóm tắt ngắn về các thay đổi, một dòng trống và mô tả đầy đủ về các thay đổi sau nó.

git commit

Cách thực hiện các thay đổi với một message trong Git

Bạn có thể thêm message mà không cần mở trình chỉnh sửa. Lệnh này cho phép bạn chỉ định một bản tóm tắt ngắn cho commit message của mình.

git commit -m "your commit message here"

Cách thực hiện các thay đổi (và bỏ qua vùng tổ chức) trong Git

Bạn có thể thêm và xác nhận các tệp được theo dõi bằng một lệnh duy nhất bằng cách sử dụng các tùy chọn -a-m.

git commit -a -m"your commit message here"

Cách xem lịch sử commit của bạn trong Git

Lệnh này hiển thị lịch sử commit cho kho lưu trữ hiện tại:

git log

Cách xem lịch sử commit của bạn bao gồm các thay đổi trong Git

Lệnh này hiển thị lịch sử của commit bao gồm tất cả các tệp và các thay đổi của chúng:

git log -p

Cách xem một commit cụ thể trong Git

Lệnh này hiển thị một commit cụ thể.

Thay thế commit id bằng id của commit mà bạn tìm thấy trong nhật ký commit sau từ commit.

git show commit-id

Cách xem số liệu thống kê nhật ký trong Git

Lệnh này sẽ làm cho nhật ký Git hiển thị một số thống kê về những thay đổi trong mỗi commit, bao gồm (các) dòng đã thay đổi và tên tệp.

git log --stat

Cách xem các thay đổi được thực hiện trước khi thực hiện chúng bằng cách sử dụng "diff" trong Git

Bạn có thể chuyển một tệp làm tham số để chỉ xem các thay đổi trên một tệp cụ thể.
Lệnh git diff chỉ hiển thị các thay đổi không theo giai đoạn theo mặc định.

Chúng ta có thể sử dụng cờ --staged để xem bất kỳ thay đổi theo giai đoạn nào.

git diff
git diff all_checks.py
git diff --staged

Cách xem các thay đổi bằng "git add -p"

Lệnh này sẽ mở ra một lời nhắc và hỏi bạn có muốn thực hiện các thay đổi hay không và bao gồm các tùy chọn khác.

git add -p

Cách xóa các tệp được theo dõi khỏi cây làm việc hiện tại trong Git

Lệnh này mong đợi một thông điệp commit giải thích lý do tệp bị xóa.

git rm filename

Cách đổi tên tệp trong Git

Lệnh này thực hiện các bước thay đổi, sau đó nó mong đợi một thông điệp commit.

git mv oldfile newfile

Cách bỏ qua tệp trong Git

Tạo một tệp .gitignore và commit nó.

Cách hoàn nguyên các thay đổi chưa phân giai đoạn trong Git

git checkout filename

Cách hoàn nguyên các thay đổi theo giai đoạn trong Git

Bạn có thể sử dụng cờ tùy chọn -p để chỉ định các thay đổi bạn muốn đặt lại.

git reset HEAD filename
git reset HEAD -p

Cách sửa đổi commit gần đây nhất trong Git

Lệnh git commit --amend cho phép bạn sửa đổi và thêm các thay đổi đối với commit gần đây nhất.

git commit --amend
Lưu ý: sửa một commit cục bộ bằng bản sửa đổi là rất tốt và bạn có thể đẩy nó vào kho lưu trữ dùng chung sau khi đã sửa xong. Nhưng bạn nên tránh sửa đổi các commit đã được công khai.

Cách khôi phục commit cuối cùng trong Git

Lệnh git revert sẽ tạo một commit mới đối lập với mọi thứ trong commit đã cho.
Chúng tôi có thể hoàn nguyên commit mới nhất bằng cách sử dụng bí danh head như sau:

git revert HEAD

Cách khôi phục một commit cũ trong Git

Bạn có thể hoàn nguyên một commit cũ bằng cách sử dụng commit id của nó. Thao tác này sẽ mở trình chỉnh sửa để bạn có thể thêm thông báo commit.

git revert comit_id_here

Cách tạo một nhánh mới trong Git

Theo mặc định, bạn có một nhánh chính là master. Với lệnh này, bạn có thể tạo một nhánh mới. Git sẽ không tự động chuyển sang nó - bạn sẽ cần thực hiện thủ công với lệnh tiếp theo.

git branch branch_name

Cách chuyển sang một nhánh mới được tạo trong Git

Khi bạn muốn sử dụng một nhánh khác hoặc một nhánh mới được tạo, bạn có thể sử dụng lệnh này:

git checkout branch_name

Cách liệt kê các nhánh trong Git

Bạn có thể xem tất cả các nhánh đã tạo bằng lệnh git branch. Nó sẽ hiển thị danh sách tất cả các nhánh và đánh dấu nhánh hiện tại bằng dấu hoa thị và tô màu xanh lá cây.

git branch

Cách tạo một nhánh trong Git và chuyển sang nó ngay lập tức

Trong một lệnh duy nhất, bạn có thể tạo và chuyển sang một nhánh mới ngay lập tức.

git checkout -b branch_name

Cách xóa một nhánh trong Git

Khi bạn làm việc xong với một nhánh và đã hợp nhất nó, bạn có thể xóa nó bằng lệnh dưới đây:

git branch -d branch_name

Cách hợp nhất hai nhánh trong Git

Để hợp nhất lịch sử của nhánh bạn hiện đang sử dụng với nhánh branch_name, bạn sẽ cần sử dụng lệnh dưới đây:

git merge branch_name

Cách hiển thị nhật ký commit dưới dạng biểu đồ trong Git

Chúng ta có thể sử dụng --graph để hiển thị nhật ký commit dưới dạng đồ thị. Ngoài ra, tùy chọn --oneline sẽ giới hạn các thông điệp commit trong một dòng.

git log --graph --oneline

Cách hiển thị nhật ký commit dưới dạng đồ thị của tất cả các nhánh trong Git

Thực hiện tương tự như lệnh trên, nhưng đối với tất cả các nhánh.

git log --graph --oneline --all

Cách hủy hợp nhất xung đột trong Git

Nếu bạn muốn loại bỏ hợp nhất và bắt đầu lại, bạn có thể chạy lệnh sau:

git merge --abort

Cách thêm kho lưu trữ từ xa trong Git

Lệnh này thêm một kho lưu trữ từ xa vào kho lưu trữ cục bộ của bạn (chỉ cần thay thế https://repo_here bằng URL kho lưu trữ từ xa của bạn).

git add remote https://repo_here

Cách xem URL từ xa trong Git

Bạn có thể xem tất cả các kho lưu trữ từ xa cho kho lưu trữ cục bộ của mình bằng lệnh này:

git remote -v

Cách nhận thêm thông tin về kho lưu trữ từ xa trong Git

Chỉ cần thay thế origin bằng tên của kho lưu trữ từ xa có được bằng cách
chạy lệnh git remote -v.

git remote show origin

Cách đẩy các thay đổi vào kho lưu trữ từ xa trong Git

Khi tất cả công việc của bạn đã sẵn sàng để được lưu trên kho lưu trữ từ xa, bạn có thể đẩy tất cả các thay đổi bằng lệnh dưới đây:

git push

Cách kéo các thay đổi từ kho lưu trữ từ xa trong Git

Nếu các thành viên khác trong nhóm đang làm việc trên hệ thống lưu trữ của bạn, bạn có thể truy xuất các thay đổi mới nhất được thực hiện đối với hệ thống lưu trữ từ xa bằng lệnh dưới đây:

git pull

Cách kiểm tra các nhánh từ xa mà Git đang theo dõi

Lệnh này hiển thị tên của tất cả các nhánh từ xa mà Git đang theo dõi cho kho lưu trữ hiện tại:

git branch -r

Cách tìm nạp các thay đổi repo từ xa trong Git

Lệnh này sẽ tải xuống các thay đổi từ một repo từ xa nhưng sẽ không thực hiện hợp nhất trên nhánh cục bộ của bạn (vì lệnh git pull sẽ thực hiện điều đó).

git fetch

Cách kiểm tra nhật ký commit hiện tại của một kho lưu trữ từ xa trong Git

Sau khi commit, Git sẽ xây dựng một bản ghi. Bạn có thể tìm ra nhật ký kho lưu trữ từ xa bằng cách sử dụng lệnh sau:

git log origin/main

Cách hợp nhất repo từ xa với repo cục bộ của bạn trong Git

Nếu kho lưu trữ từ xa có những thay đổi mà bạn muốn hợp nhất với cục bộ của mình, thì lệnh này sẽ thực hiện điều đó cho bạn:

git merge origin/main

Cách lấy nội dung của các nhánh từ xa trong Git mà không cần tự động hợp nhất

Điều này cho phép bạn cập nhật kho lưu trữ từ xa mà không cần hợp nhất bất kỳ nội dung nào vào các nhánh cục bộ. Bạn có thể chạy lệnh git merge hoặc git checkout để thực hiện việc hợp nhất.

git remote update

Cách đẩy một nhánh mới vào kho lưu trữ từ xa trong Git

Nếu bạn muốn đẩy một nhánh đến một kho lưu trữ từ xa, bạn có thể sử dụng lệnh bên dưới. Chỉ cần nhớ thêm tùy chọn -u để tạo nhánh ngược dòng:

git push -u origin branch_name

Cách xóa một nhánh từ xa trong Git

Nếu bạn không cần một nhánh từ xa nữa, bạn có thể xóa nó bằng cách sử dụng lệnh dưới đây:

git push --delete origin branch_name_here

Cách sử dụng Git rebase

Bạn có thể chuyển công việc đã hoàn thành từ nhánh này sang nhánh khác bằng cách sử dụng git rebase.

git rebase branch_name_here

Git Rebase có thể trở nên thực sự lộn xộn nếu bạn không làm đúng cách. Trước khi sử dụng lệnh này, tôi khuyên bạn nên đọc lại tài liệu chính thức tại đây.

Cách chạy rebase tương tác trong Git

Bạn có thể chạy git rebase tương tác bằng cách sử dụng cờ -i. Nó sẽ mở trình soạn thảo và trình bày một tập hợp các lệnh mà bạn có thể sử dụng.

git rebase -i master
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
# d, drop = remove commit

Cách thực hiện một yêu cầu đẩy trong Git

Lệnh này sẽ thực hiện một yêu cầu đẩy (push). Điều này thường tốt cho các nhánh yêu cầu kéo vì không ai khác nên nhân bản chúng. Nhưng đây không phải là điều bạn muốn làm với các repo công khai.

git push -f

Phần kết luận

Các lệnh này có thể cải thiện đáng kể năng suất của bạn trong Git. Bạn không cần phải nhớ tất cả - đó là lý do tại sao tôi đã viết cheat sheet này. Đánh dấu trang này để tham khảo trong tương lai hoặc in nó nếu bạn thích.

Git
Bài Viết Liên Quan:
Cách giải quyết xung đột trong Git
Trung Nguyen 26/03/2021
Cách giải quyết xung đột trong Git

Bài viết này sẽ giới thiệu tới bạn: làm thế nào và khi nào các xung đột thường xảy ra, chúng ta sẽ làm gì để giải quyết chúng.

Sử dụng branch hiệu quả trong Git
Trung Nguyen 25/03/2021
Sử dụng branch hiệu quả trong Git

Trong bài viết này, tôi sẽ giới thiệu với bạn mô hình sử dụng Git hiệu quả mà tôi đã và đang sử dụng trong các dự án nhiều năm trở lại đây.

Git là gì? Hướng dẫn cho Người mới bắt đầu về Git
Trung Nguyen 25/03/2021
Git là gì? Hướng dẫn cho Người mới bắt đầu về Git

Git là một hệ thống kiểm soát phiên bản (version control) mà các nhà phát triển sử dụng trên toàn thế giới.