Get in touch
or send us a question?
CONTACT

Git: Đi lại một lượt các lệnh Git phổ biến

Git là tên gọi của một Hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS) là một trong những hệ thống quản lý phiên bản phân tán phổ biến nhất hiện nay. Và việc sử dụng git để quản lý, làm việc với các dự án lớn nhỏ là chuyện phổ biến.

Ở trong bài viết này, chúng ta có thể tìm hiểu lại các lệnh git từ cơ bản đến nâng cao, và có thể tìm hiểu sâu hơn về các lệnh đó, hoặc đơn giản là điểm lại những câu lệnh git mà chúng ta sử dụng.

Một số câu lệnh git

git config

Khi mới bắt đầu mới tải git về thì git config sẽ là câu lệnh để nhận diện được chúng ta là ai, trong đó chúng ta cần cung cấp thông tin về tên và email cá nhân của chúng ta. Và trong các thao tác sau này thì những thông tin này sẽ được đính kèm vào trong các commit của chúng ta.

git config --global user.name "Your name"

git config --global user.email "Your email

git version

Câu lệch giúp chúng ta kiểm tra phiên bản git mà chúng ta cài đặt và đang sử dụng ở trên máy.

git version

git init

git init dùng để khởi tạo một kho lưu trữ Git mới cho dự án của chúng ta. Sau khi chạy câu lệnh này thì nó sẽ tạo cho chúng ta một thư mục ẩn .git trong thư mục dữ án. Tại đây, nó sẽ lưu trữ tất cả thông tin về lịch sử phiên bản của dự án.

Chúng ta có thể chạy câu lệnh ở trong thư mục của dự án

git init

Hoặc chúng ta có thể chạy với việc chỉ định một thư mục cụ thể.

git init <your repository name>

Thư mục .git sẽ được tạo ra, trong đó có một số thư mục con:

  • objects: Lưu trữ các đối tượng Git, bao gồm các blob, tree và commit.
  • refs: Lưu trữ các tham chiếu đến các commit, bao gồm HEAD và các nhánh.
  • template: Lưu trữ các mẫu file cho các commit, tag và các file khác.

git clone

git clone dùng để tải xuống bản sao của một repo từ trên xa về máy tính của bạn. Lệnh này sẽ tạo một thư mục mới trên máy tính của bạn, chứa đầy đủ tâts cả các file và lịch sử phiên bản của repo mà bạn muốn tải về ở trên.

git clone <your project URL>

Đối với github, thì họ cũng có nhiều hướng để tải, bạn có thể tải trực tiếp bằng đường dẫn linh url, hoặc có thể tải bằng SSH.

git add

Sau một quá trình chỉnh sửa code trong repo, git add được sử dụng để thêm các thay đổi file vào vùng chờ (staging area). Vùng chờ có thể hiểu đơn giản là nơi lưu trữ tạm thời các thay đổi file trước khi commit.

#  thêm toàn bộ chỉnh sửa
git add .

# Hoặc là bạn có thể chỉ định danh file chỉnh sửa
git add <file>

# Bạn đang ở thư mục con và muốn thêm cả ở những đoạn code ở thu mục cha
git add -A

git commit

git commit dùng để lưu lại trạng thái và comment của dự án vào kho lưu trữ git. Lệnh này tạo ra một ảnh chụp nhanh (snapshot) của tất cả các thay đổi file đã được thêm vào vùng chờ (staging area).

git commit -m "Commit desription"

Một số cài đặt khác:

  • -m: Sử dụng để thêm mô tả
  • -n: Thêm ghi chú commit chi tiết hơn
  • -a: commit tất cả các thay đổi file đã theo dõi

git status

Git status là dùng để hiển thị trạng thái hiện tại của kho lưu trữ Git. Lệnh này cung cấp thông tin về các thay đổi file đã được theo dõi (tracked) và chưa được theo dõi, cũng như trạng thái của vùng chờ (staging area).

git status

Một số tuỳ chọn:

  • -s: Hiển thị trạng thái tóm tắt của kho lưu trữ Git.
  • -b: Hiển thị tên nhánh hiện tại.
  • -u: Hiển thị các file chưa được theo dõi và các thay đổi file chưa được commit.

git branch

git branch là một công cụ mạnh mẽ cho phép bạn tạo và quản lý các nhánh phát triển khác nhau trong kho lưu trữ Git. Nhánh là một bản sao của kho lưu trữ Git, cho phép bạn thử nghiệm các thay đổi mới mà không ảnh hưởng đến nhánh chính (master).

# List ra tất cả các nhánh đang có
git branch

# Tạo nhánh mới
git branch <New branch>

# Xoá một nhánh
git branch -d <Delete branch>

git checkout

git checkout có thể hiểu đơn giản là phương thức để chúng ta di chuyển giữa các nhánh với nhau.

git checkout <branch_name>

git remote

Đây cũng được hiểu đơn giản như là một phương thức để mà bạn kết nối repo với dịch vụ lưu trữ git từ xa nào đó.

git remote add <shortname> <url>

git push

Khi đã có kết nối trên, câu lệnh này sẽ giúp chúng ta đồng bộ những thay đổi đã được commit lên local trên dịch vụ lưu trữ,

git push -u <short_name> <your_branch_name>

git fetch

Trong thực tế thì không chỉ mình bạn làm một dự án mà còn rất nhiều người khác làm dự án, lúc đó cũng sẽ có rất nhiều commit xảy ra trong lần cuối bạn cập nhật. git fetch sẽ giúp chúng ta cập nhật tất cả những thông tin mới như commit, branch, …

git fetch

git pull

git pull có thể coi là sự kết hợp của git fetch và git merge, lệnh này tải xuống các thay đổi mưới từ kho lưu trữ tự xa (remote repo) và gộp (merge) các thay đổi đó vào nhánh của bạn.

$ git pull <remote_url> <branch>

git stash

Git stash là một lệnh Git hữu ích giúp bạn lưu trữ tạm thời các thay đổi chưa được commit trong kho lưu trữ Git của bạn. Lệnh này cho phép bạn chuyển đổi sang một nhánh khác hoặc thực hiện các thay đổi khác mà không cần commit các thay đổi hiện tại.

git stash

git log

Với câu lệnh git log các bạn có thể xem tất cả những commit trước đó được sắp xếp theo thứ tự commit gần nhất cho đến những commit cũ hơn.

git log

git merge

git merge là một lệnh Git quan trọng dùng để hợp nhất các thay đổi từ hai nhánh khác nhau vào một nhánh duy nhất. Lệnh này cho phép bạn kết hợp các thay đổi từ các nhánh phát triển khác nhau vào nhánh chính (master) hoặc hợp nhất các thay đổi từ các nhánh khác vào nhánh hiện tại của bạn.

git merge <branch_name>

Câu lệnh này sẽ kết hợp những thay đổi trên branch có tên là <branch_name> vào branch hiện tại.

git rebase

git rebase là một lệnh Git mạnh mẽ dùng để sắp xếp lại lịch sử commit trong kho lưu trữ Git của bạn. Lệnh này cho phép bạn di chuyển các commit từ một nhánh sang nhánh khác và sắp xếp lại các commit theo thứ tự mong muốn. Có thể coi git rebase là phiên bản mạnh hơn git merge.

git rebase <branch_name>

git cherry-pitch

git cherry-pitch cho phép bạn chọn lọc và áp dụng các commit từ một nhánh sang nhánh khác. Lệnh này cho phép bạn chọn các commit cụ thể mà muốn áp dụng và bỏ qua các commit khác.

git cherry-pitch <commit-hash>

git revert

git revert dùng để hoàn tác các thay đổi trong kho lưu trữ Git của bạn. Lệnh này cho phép bạn đảo ngược các commit đã được thực hiện, đưa kho lưu trữ về trạng thái trước khi commit đó được thực hiện.

git revert <SHA-1 hash>

git reset

git reset là một lệnh Git mạnh mẽ cho phép bạn đặt lại trạng thái kho lưu trữ Git của bạn về một trạng thái trước đó. Lệnh này có thể được sử dụng để hoàn tác các thay đổi chưa được commit, xóa các commit khỏi lịch sử commit, hoặc chuyển đổi sang một nhánh khác.

git reset có ba chế độ chính:

  • --soft: Chuyển đổi HEAD sang commit khác nhưng giữ nguyên working tree và staging area.
  • --mixed: Chuyển đổi HEAD sang commit khác và cập nhật staging area để khớp với commit đó. Working tree không bị ảnh hưởng.
  • --hard: Chuyển đổi HEAD sang commit khác, cập nhật staging area và working tree để khớp với commit đó.
git reset <mode> <SHA-1 hash>

git restore

git restore giúp bạn khôi phục dữ liệu đã bị mất hoặc thay đổi trong kho lưu trữ git.

git store <file>

Nguồn: https://viblo.asia/p/git-di-lai-mot-luot-cac-lenh-git-pho-bien-vlZL9a6WLQK