Git là một phần quan trọng trong lập trình ngày nay (đặc biệt nếu bạn đang làm việc nhóm) và được sử dụng rộng rãi trong lĩnh vực phần mềm.

Vì có nhiều lệnh khác nhau mà bạn có thể sử dụng nên việc thành thạo Git mất khá nhiều thời gian. Tuy nhiên, có một số lệnh bạn sẽ cần dùng nó hàng ngày. Vì vậy, trong bài viết này, chúng tôi sẽ chia sẻ và giải thích 10 lệnh Git được sử dụng nhiều nhất mà mọi lập trình viên nên biết.

Lưu ý: Để hiểu bài viết này, bạn cần nắm những kiến ​​thức cơ bản về Git.

1. Git clone

Git clone là một lệnh để tải xuống mã nguồn hiện có từ một kho lưu trữ từ xa (ví dụ như Github). Nói cách khác, Git clone về cơ bản tạo một bản sao giống hệt phiên bản mới nhất của một dự án trong một kho lưu trữ và lưu nó vào máy tính của bạn.

Có một số cách để tải xuống mã nguồn, nhưng chủ yếu mọi người vẫn dùng cách sao chép bằng https

Ví dụ: nếu chúng ta muốn tải xuống một dự án từ Github, tất cả những gì chúng ta cần làm là nhấp vào nút màu xanh lá cây (sao chép hoặc tải xuống), sao chép URL và dán nó sau lệnh git clone nằm ở phía trên bên phải.

Thao tác này sẽ tạo một bản sao của dự án vào không gian làm việc cục bộ của bạn để bạn có thể bắt đầu làm việc với nó.

2. Git branch

Nhánh là một phần không thể thiếu trong Git. Bằng cách sử dụng các nhánh, các lập trình viên có thể làm việc đồng thời trên cùng một dự án. Bên cạnh đó, ta có thể sử dụng lệnh git branch để tạo, liệt kê và xóa các nhánh.

Tạo một nhánh mới:

Lệnh này sẽ tạo một nhánh cục bộ. Để đẩy nhánh mới vào kho lưu trữ từ xa, bạn cần sử dụng lệnh sau:

Xem nhánh:

Xóa một nhánh:

3. Git checkout

Đây cũng là một trong những lệnh Git được sử dụng nhiều nhất. Để làm việc trong một nhánh, trước tiên bạn cần chuyển sang nhánh đó. Mọi người chủ yếu sử dụng git checkout để chuyển từ nhánh này sang nhánh khác. Ngoài ra, chúng ta cũng có thể sử dụng nó để kiểm tra các tệp và commits.

Có một số điều bạn cần thực hiện để chuyển đổi giữa các nhánh:

  • Những thay đổi trong nhánh hiện tại của bạn phải được commit hoặc lưu trữ trước khi bạn chuyển đổi.
  • Nhánh bạn muốn kiểm tra phải tồn tại ở local của bạn.

Ngoài ra còn có một lệnh tắt cho phép bạn tạo và chuyển sang nhánh cùng lúc:

Lệnh này tạo một nhánh mới trong cục bộ của bạn (-b là viết tắt của branch) và kiểm tra nhánhmới ngay sau khi nó được tạo.

4. Git status

Lệnh Git status cung cấp cho chúng ta tất cả thông tin cần thiết về nhánh hiện tại. 

Nó cho phép chúng ta xem các file được theo dõi, chưa được theo dõi và các thay đổi. Lệnh này sẽ không hiển thị bất kỳ bản ghi hoặc thông tin commit nào. Hầu hết, nó được sử dụng để hiển thị trạng thái của Git Add và Git commit.

Hình 4.1: Git cung cấp thông tin về nhánh & tệp

5. Git add

Khi chúng ta tạo, sửa đổi hoặc xóa một tệp, những thay đổi này sẽ xảy ra trong cục bộ của chúng ta và sẽ không được đưa vào lần commit tiếp theo (trừ khi chúng ta thay đổi cấu hình).

Chúng ta cần sử dụng lệnh git add để đưa các thay đổi của (các) tệp vào lần commit tiếp theo. 

Để thêm một tệp:

Để thêm nhiều tệp cùng một lúc:

Theo như “Hình 4.1”, bạn sẽ thấy có các tên tệp có màu đỏ - điều này có nghĩa là chúng là tệp Untracked. Các tệp này sẽ không được nằm trong các lần commit của bạn.

Để bao gồm chúng, chúng ta cần sử dụng git add:

Lưu ý: Lệnh git add không thay đổi kho lưu trữ và các thay đổi không được lưu cho đến khi sử dụng git commit.

6. Git Commit

Đây là lệnh cực kỳ phổ biến và bạn không thể bỏ qua khi tìm hiểu Git là gì. Git commit có tác dụng giúp Git lưu lại một ảnh chụp màn hình/snapshot đối với các thay đổi trong thư mục trong quá trình làm việc với Git. 

Với Git, khi Commit, các thay đổi sẽ được tự động lưu lại và thường nằm trong mục Staging Area. Trong hệ thống cũng sẽ lưu lại tên người chỉnh sửa để người dùng có thể dễ dàng theo dõi. Hệ thống cũng sẽ lưu trữ tên và email của người thực hiện chính sửa. Bạn cũng có thể khôi phục lại các tệp tin và chuyển sang một nhánh khác. 

7. Git Push

Sau khi thực hiện các thay đổi của mình, điều tiếp theo bạn muốn làm là gửi các thay đổi của mình đến máy chủ từ xa. Git Push sẽ giúp tải các commit của bạn lên kho lưu trữ từ xa.

Tuy nhiên, nếu nhánh của bạn mới được tạo, thì bạn cũng cần tải nhánh đó lên bằng lệnh sau:

hoặc

8. Git Pull

Lệnh git pull được sử dụng để nhận các bản cập nhật từ từ xa. Lệnh này là sự kết hợp của git fetch và git merge, có nghĩa là khi chúng ta sử dụng git pull, nó sẽ nhận các bản cập nhật từ kho lưu trữ từ xa (git fetch) và ngay lập tức áp dụng các thay đổi mới nhất trong local của bạn (git merge).

9. Git revert

Đôi khi chúng ta cần hoàn tác những thay đổi mà chúng ta đã thực hiện. Chúng ta có thể thay đổi từ local hoặc từ xa (tùy thuộc vào nhu cầu của bạn), nhưng bạn phải cẩn thận sử dụng các lệnh này để tránh xóa nhầm những thứ không mong muốn.

Một cách an toàn hơn mà chúng ta có thể hoàn tác các commit của mình là sử dụng git revert . Để xem lịch sử commit, trước tiên chúng tôi cần sử dụng git log -- oneline:

Sau đó, bạn chỉ cần chỉ định hash code bên cạnh commit mà bạn muốn hoàn tác:

Sau đó, bạn sẽ thấy màn hình hiển thị như bên dưới - chỉ cần nhấn shift + q để thoát:

Lệnh Git revert sẽ hoàn tác commit bạn đã chọn, nhưng sẽ tạo một commit mới mà không xóa đi commit cũ:


Commit mới đã được hoàn tác

Ưu điểm của việc sử dụng git revert là nó không động đến lịch sử commit. Điều này có nghĩa là bạn vẫn có thể xem lại tất cả các lần commit trong lịch sử của mình, ngay cả những lần xác nhận đã hoàn tác. 

10. Git merge

Git Merge là một lệnh dùng để hợp nhất các chi nhánh độc lập thành một nhánh duy nhất trong Git.

Khi sử dụng lệnh hợp nhất trong Git, chỉ có nhánh hiện tại được cập nhật để phản ánh sự hợp nhất, còn nhánh đích sẽ không bị ảnh hưởng. Điều này có nghĩa rằng, Git Merge thường được sử dụng kết hợp với git checkout để chọn nhánh hiện tại và git branch để xóa nhánh nguồn đã lỗi thời.

Ví dụ: khi bạn muốn hợp nhất nhánh tính năng của mình vào nhánh dev:

Trước tiên, bạn nên chuyển sang nhánh dev:

Trước khi merge, bạn nên update nhánh local dev của bạn trước

Cuối cùng, bạn có thể merge nhánh tính năng của mình vào dev:

Gợi ý: Hãy đảm bảo nhánh dev của bạn là phiên bản mới nhất trước khi merge các nhánh, nếu không, bạn có thể gặp phải xung đột hoặc các sự cố không mong muốn khác.

Nguồn: FreeCodeCamp

VietnamWorks inTECH