Email Doanh NghiệpSSLFirewall Anti DDoSTối ưu tốc độ website

NỘI DUNG

Banner blog lễ 30.4 và 1.5

Git là gì? Tổng hợp các lệnh Git cơ bản và nâng cao mọi lập trình viên cần biết 2025

Cao Lê Viết Tiến

Đã kiểm duyệt nội dung

Ngày đăng:16/07/2025
Lượt xem

Đánh giá

5/5 - (192 bình chọn)

Git là hệ thống quản lý phiên bản phân tán mã nguồn mở, được sử dụng rộng rãi trong phát triển phần mềm hiện đại. Hệ thống này giúp lập trình viên theo dõi lịch sử thay đổi mã nguồn, cộng tác nhóm hiệu quả và kiểm soát dự án chặt chẽ. Trong bài viết này, mình sẽ giới thiệu tổng quan về Git là gì cùng hơn 50 lệnh Git cơ bản và nâng cao mà mọi lập trình viên nên biết.

banner vps vietnix hỗ trợ n8n

Những điểm chính

  • Định nghĩa: Biết được Git là một hệ thống quản lý phiên bản phân tán sử dụng trong phát triển phần mềm.
  • Tìm hiểu Version Control System: Giải thích VCS là gì và tầm quan trọng trong việc quản lý mã nguồn.
  • Cách thức hoạt động: Mô tả cơ chế hoạt động của Git dựa trên snapshot, giúp bạn nắm được nguyên lý hoạt động cốt lõi của Git.
  • Lợi ích: Liệt kê các lợi ích cụ thể của Git, giúp bạn thấy được giá trị thực tiễn khi áp dụng Git.
  • Phân biệt Git và GitHub: So sánh sự khác nhau giữa Git và GitHub.
  • Các thuật ngữ quan trọng: Giải thích các thuật ngữ chuyên ngành trong Git, giúp người đọc làm quen và sử dụng Git hiệu quả hơn.
  • Tổng hợp các câu lệnh Git quan trọng: Cung cấp danh sách các lệnh Git cơ bản và nâng cao, giúp người đọc tra cứu và sử dụng Git dễ dàng.
  • Lời khuyên khi sử dụng: Đưa ra lời khuyên thực tiễn khi sử dụng Git, giúp người đọc tối ưu hóa quy trình làm việc.
  • Giới thiệu Vietnix: Biết được Vietnix là nhà cung cấp VPS tốc độ cao, ổn định và uy tín hàng đầu.
  • Câu hỏi thường gặp: Trả lời các câu hỏi thường gặp về Git và các nền tảng liên quan.

Git là gì?

Git là một hệ thống quản lý phiên bản phân tán (DVCS) được sử dụng rộng rãi trong phát triển phần mềm. Hệ thống này giúp theo dõi và quản lý các thay đổi trong mã nguồn, cho phép nhiều nhà phát triển làm việc cùng nhau trên cùng một dự án một cách hiệu quả. 

Git là gì trong lập trình
Git là gì trong lập trình

Với Git, mỗi lập trình viên sở hữu một kho lưu trữ (repository) riêng chứa toàn bộ thông tin về các sửa đổi và lịch sử của dự án. Hệ thống cũng cho phép lưu trữ lịch sử thay đổi, so sánh các phiên bản và khôi phục lại các phiên bản trước đó. Nhờ những ưu điểm này, Git đã trở thành một trong những phần mềm quản lý mã nguồn phổ biến nhất hiện nay.

Version Control System là gì?

Version Control System (VCS) là một hệ thống kiểm soát các phiên bản phân tán mã nguồn mở. VCS hoạt động bằng cách theo dõi và lưu trữ tất cả các file trong toàn bộ dự án, đồng thời ghi lại lịch sử thay đổi theo thời gian. 

Mỗi sự thay đổi sẽ được lưu lại thành một phiên bản (version). Mỗi phiên bản này bao gồm nội dung thay đổi, ngày và giờ sửa đổi, tác giả thay đổi, tên phiên bản, hỗ trợ các lập trình viên tiện theo dõi và xem lại danh sách thay đổi của file theo dòng thời gian.

Tác dụng của Version Control System (VCS) và Git

VCS và Git mang lại nhiều lợi ích đáng kể trong quá trình phát triển phần mềm:

  • Lưu trữ toàn bộ lịch sử thay đổi: VCS giúp lập trình viên theo dõi và khôi phục dễ dàng các phiên bản cũ hơn sau này. Git đặc biệt hữu ích khi ghi nhớ và lưu lại toàn bộ thay đổi trên mã nguồn của bạn, bao gồm việc thêm code ở đâu, sửa code ở dòng nào, người thay đổi là ai và nhiều thông tin khác.
  • Chia sẻ mã nguồn dễ dàng: VCS hỗ trợ chia sẻ mã nguồn dễ dàng, ở chế độ công khai (public) hoặc riêng tư (private) tùy theo nhu cầu.
Lợi ích của Version Control System
Lợi ích của Version Control System

Cách thức hoạt động của Git

Điểm khác biệt chính của Git so với các hệ thống VCS truyền thống là cách lưu trữ thông tin. Hầu hết các hệ thống VCS khác (như CVS, Subversion, Perforce) lưu trữ thông tin dưới dạng danh sách các thay đổi dựa trên từng file. Ngược lại, Git coi các thông tin lưu trữ thành một tập hợp các snapshot (ảnh chụp toàn bộ nội dung của file tại thời điểm đó).

Mỗi khi thực hiện một commit, Git sẽ chụp và tạo ra một snapshot cùng một tham chiếu tới snapshot đó. Để tối ưu hóa, nếu các file không thay đổi giữa các commit, Git sẽ không lưu trữ lại file đó mà chỉ lưu một liên kết đến file giống file trước đó đã được lưu trữ.

Cách thức hoạt động của Git
Cách thức hoạt động của Git

Quy trình xử lý công việc (workflow) cơ bản trên Git thường bao gồm các bước sau:

  1. Khởi tạo kho lưu trữ: git init
  2. Thêm file vào vùng staging: git add <tên_file>
  3. Commit thay đổi: git commit <tên_file>
  4. Đẩy thay đổi lên kho lưu trữ từ xa: git push

Cơ chế snapshot của Git không chỉ tiết kiệm dung lượng mà còn tăng tốc độ truy cập lịch sử, tối ưu hóa việc merge và xử lý xung đột, hỗ trợ hiệu quả cho việc sử dụng branch.

Quy trình xử lý công việc trên Git
Quy trình xử lý công việc trên Git

Lợi ích của Git trong phát triển phần mềm

  • Làm việc nhóm hiệu quả: Git giúp nhiều lập trình viên có thể cùng làm việc trên một dự án mà vẫn kiểm soát được xung đột mã nguồn. Tính năng quản lý phiên bản và hợp nhất thay đổi giúp đồng bộ và phối hợp công việc mượt mà hơn.
  • Quản lý thay đổi linh hoạt: Với Git, bạn dễ dàng hoàn tác các thay đổi không mong muốn thông qua các lệnh như revert hoặc reset, giúp tiết kiệm thời gian và hạn chế rủi ro khi phát triển phần mềm.
  • Phân nhánh linh hoạt, tối ưu quy trình phát triển: Hệ thống phân nhánh mạnh mẽ cho phép bạn tạo các nhánh riêng để phát triển tính năng mới, sửa lỗi hay thử nghiệm mà không ảnh hưởng đến mã nguồn chính. Điều này giúp kiểm thử dễ dàng và tổ chức công việc hiệu quả hơn.
  • Dễ triển khai, thao tác đơn giản: Git thân thiện với người dùng, dễ thao tác và an toàn. Bạn có thể dễ dàng clone toàn bộ repository hoặc chỉ các nhánh/file cụ thể để làm việc, hỗ trợ triển khai và cập nhật sản phẩm linh hoạt ở bất kỳ đâu.
  • Hỗ trợ làm việc offline: Git vượt trội hơn nhiều hệ thống quản lý phiên bản tập trung như SVN vì cho phép làm việc ngoại tuyến. Bạn có thể commit, theo dõi thay đổi cục bộ và chỉ cần kết nối Internet khi push lên repository từ xa.
  • Tiết kiệm dung lượng lưu trữ: Nhờ cơ chế lưu trữ thông minh, Git chỉ sử dụng 41 bytes để tạo một nhánh mới, thay vì sao chép toàn bộ mã nguồn như các hệ thống khác, giúp tiết kiệm bộ nhớ đáng kể.
  • Miễn phí và phổ biến: Git hoàn toàn miễn phí và có thể sử dụng mọi lúc mọi nơi mà không cần đầu tư hạ tầng server. Tuy nhiên, với VPS Vietnix, bạn có thể nâng cao hiệu suất và bảo mật cho các dự án Git của mình.

Để phát huy tối đa những lợi ích của Git và triển khai dự án lập trình của bạn một cách hiệu quả nhất, việc sở hữu một môi trường máy chủ ổn định và mạnh mẽ là điều cần thiết.

Nếu bạn đang tìm kiếm một giải pháp tối ưu cho việc lưu trữ mã nguồn, chạy các môi trường thử nghiệm hay triển khai ứng dụng với Git, VPS Giá Rẻ của Vietnix chính là lựa chọn hoàn hảo. Với chi phí hợp lý nhưng vẫn đảm bảo hiệu suất và độ ổn định cao, VPS Vietnix giúp các lập trình viên an tâm phát triển mà không lo về tài nguyên hay gián đoạn, từ đó tối đa hóa năng suất làm việc.

col vps gr 2

 VPS Giá rẻ Vietnix: UPTIME VƯỢT TRỘI – chi phí tối ưu

Ổn định, an toàn, tiết kiệm – Nền tảng vững chắc cho ứng dụng và website của bạn.

Phân biệt Git và GitHub

Đặc điểmGitGitHub
Định nghĩaHệ thống quản lý phiên bản mã nguồn phân tán (DVCS), cài đặt cục bộ.Nền tảng lưu trữ mã nguồn trực tuyến, hỗ trợ làm việc nhóm và quản lý dự án.
Cách hoạt độngLàm việc hoàn toàn trên máy tính cá nhân, không cần kết nối mạng.Hoạt động thông qua internet, lưu trữ mã nguồn trên cloud.
Chức năng chínhTheo dõi lịch sử thay đổi, quản lý phiên bản, phân nhánh, hợp nhất mã.Tạo repository online, quản lý pull request, theo dõi issue, review code, hỗ trợ CI/CD,…
Mục đích sử dụngGiúp lập trình viên kiểm soát mã nguồn và làm việc hiệu quả cục bộ.Giúp cộng tác nhóm, chia sẻ mã nguồn và quản lý dự án trên môi trường trực tuyến.
Mối quan hệGit là công cụ quản lý phiên bản, GitHub là nền tảng lưu trữ và cộng tác sử dụng Git.Git hoạt động độc lập, nhưng GitHub cần Git để đồng bộ và theo dõi mã nguồn từ local lên cloud.

Các thuật ngữ quan trọng trong Git mà lập trình viên cần nắm

1. Kho lưu trữ (Repository)

Kho lưu trữ (thường được gọi là repo) là một tập hợp các mã nguồn. Repo chứa các commit của dự án hoặc một tập hợp các tham chiếu đến các commit, chẳng hạn như heads.

2. Commit

Một commit ghi lại một thay đổi hoặc một loạt các thay đổi mà bạn đã thực hiện đối với một file trong repo. Một commit có hash SHA1 duy nhất được sử dụng để theo dõi các file đã thay đổi trong quá khứ. Git History là danh sách một loạt các commit. Sử dụng lệnh commit kết hợp với lệnh git add để cho git biết những thay đổi của bạn và lưu vào kho lưu trữ repositoty.

3. Branch

Một branch về cơ bản là một tập hợp các mã thay đổi duy nhất với một tên duy nhất. Mỗi repo có thể có một hoặc nhiều branch. Branch chính – branch mà tất cả các thay đổi cuối cùng được merge vào – được gọi là branch master. Đây là phiên bản làm việc chính thức cho dự án của bạn và là phiên bản mà bạn sẽ thấy khi truy cập kho dự án tại github.com/yourname/projectname.

4. Checkout

Bạn có thể sử dụng lệnh git checkout để chuyển các branch. Bằng cách nhập git checkout sao tên branch mà bạn muốn chuyển đến hoặc nhập git master để trở về branch chính (master branch).

5. Fork

Fork là một bản sao của kho lưu trữ (repository). Bạn có thể tận dụng các lợi ích của fork để chạy thử nghiệm các thay đổi mà không ảnh hưởng đến kết quả của dự án.

6. Fetch

Sử dụng lệnh git fetch để tìm nạp các bản sao và tải xuống các tệp branch vào máy tính của bạn. Có thể sử dụng nó lưu các thay đổi mới nhất vào repository và có thể tìm nạp branch cùng một lúc.

7. Head

Head đại diện cho commit mới nhất của repository mà bạn đang làm việc và commit ở đầu của một branch được gọi là head.

8. Index

Khi sử dụng mà bạn thêm, xóa hoặc thay đổi file thì nó vẫn nằm trong mục index cho đến khi bạn sẵn sàng commit các thay đổi. Bạn dùng lệnh git status để xem nội dung index của bạn.

9. Merge

Lệnh git kết hợp với các yêu cầu kéo (pull request) để thêm các thay đổi từ nhánh này sang nhánh khác.

10. Origin

Là phiên bản mặc định của repository và origin đóng vai trò đặc biệt để liên lạc với nhánh chính. Lệnh git push origin master để đẩy các thay đổi cục bộ đến nhánh chính.

origin git
Origin Git

11. Master

Master là nhánh chính của tất cả các repository, nó bao gồm cả những thay đổi gần đây nhất.

git master
Master

12. Pull

Pull request thể hiện các đề xuất thay đổi trong nhánh chính. Khi làm việc với một nhóm, bạn có thể tạo các pull request để yêu cầu người bảo trì kho lưu trữ xem xét các thay đổi và hợp nhất chúng.

13. Push

Lệnh git push dùng để cập nhật các nhánh từ xa với những thay đổi mới nhất mà bạn mới commit. 

14. Remote

Remote (kho lưu trữ từ xa) là một bản sao của một chi nhánh. Remote có thể giao tiếp ngược lại với nhánh gốc (origin branch) của chúng và các remote khác trong kho lưu trữ.

15. Rebase

Git rebase cho phép bạn phân tách, di chuyển và thoát commit. Và cũng có thể sử dụng nó để kết hợp hai nhánh lại với nhau.

16. Stash

Nếu bạn muốn loại bỏ các thay đổi khỏi index của bạn và xáo stashes chúng đi sau thì bạn có thể sử dụng lệnh sau:

git stash

Tiện lợi cho bạn khi bạn muốn tạm dừng công việc hiện tại và làm công việc khác trong một khoảng thời gian. Bạn có thể đặt stash nhiều hơn bộ thay đổi ở cùng một thời điểm.

17. Tags

Đối với tags, thì nó sẽ cung cấp cho bạn một cách để theo dõi commit quan trọng.

18. Upstream

Upstream đề cập đến nơi bạn push các thay đổi của mình và thường là các nhánh chính (master branch).

19. Working directory, staging area và local repo

Với mỗi local repo có ba virtual zone khác nhau. Đó là:

  • Working Directory
  • Staging area
  • commit area
git
Local repo

Working directory là nơi các file mới được tạo, file cũ bị xóa hoặc nơi thực hiện các thay đổi đối với các file đã có. Sau khi thay đổi được thực hiện, chúng sẽ được thêm vào staging area. Do đó, staging area đôi khi còn được gọi là index.

Sau khi các thay đổi hoàn tất, staging area sẽ chứa một hoặc nhiều file cần được commit. Việc tạo một commit sẽ khiến Git lấy mã mới từ staging area và đưa commit vào repo chính. Sau đó commit này sau đó được chuyển đến commit area.

Các lệnh Git cơ bản

1. Git config

  • Công dụng: Hai cài đặt quan trọng của git là user name và email.

Có nhiều cách để để điều chỉnh git config, có thể tùy chỉnh kết quả output màu và thay đổi hành vi git status. Bạn cói thể tìm hiểu git config trong tài liệu Git chính thức.

  • Sử dụng: Khi bạn muốn kiểm tra trên và email trong cấu hình dùng lệnh:
$ git config <setting> <command>
  • Thực tế:
# Running git config globally
$ git config --global user.email "my@emailaddress.com"
$ git config --global user.name "Example"
# Running git config on the current repository settings
$ git config user.email "my@emailaddress.com"
$ git config user.name "Example"

2. Git init

  • Công dụng: Dùng để tạo một kho lưu trữ (repository) và 1 dự án (project) mới.
  • Sử dụng: Dùng lệnh git init trong thư mục gốc của dự án.

3. Git add

  • Công dụng: Thêm các file vào stage/index. Một số cách khác có thể sử dụng git add bằng cách thêm toàn bộ thư mục, các file cụ thể.
  • Sử dụng:
$ git add <file or directory name>
  • Trong thực tế:
# To add all files not staged:
$ git add .
# To stage a specific file:
$ git add index.html
# To stage an entire directory:
$ git add css

4. Git commit

  • Công dụng: Dùng để ghi lại những thay đổi được thực hiện đối với file vào local repository. Để dễ dàng theo dõi commit và mỗi commit sẽ có một mã ID theo dõi duy nhất.
  • Sử dụng:
# Adding a commit with message
$ git commit -m "Commit message in quotes"
  • Thực tế:
$ git commit -m "My first commit message"
[SecretTesting 0254c3d] My first commit message
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 homepage/index.html

5. Git status

  • Công dụng: Sử dụng lệnh này để trả về trạng thái tại kho lưu trữ (repository). git status sẽ trả về nhánh làm việc hiện tại của bạn. Nếu một file nằm trong stagging area nhưng không được commit thì nó sẽ hiển thị với git status. Hoặc nếu không có thay đổi nào no sẽ trả về nothing to commit, working directory clean
  • Sử dụng:
$ git status
  • Thực tế:
# Message when files have not been staged (git add)
$ git status
On branch SecretTesting
Untracked files:
  (use "git add <file>..." to include in what will be committed)

  	homepage/index.html

# Message when files have been not been committed (git commit)
$ git status
On branch SecretTesting
Your branch is up-to-date with 'origin/SecretTesting'.
Changes to be committed:
  (use "git reset HEAD <file>..." to unstage)

        new file:   homepage/index.html

# Message when all files have been staged and committed 
$ git status
On branch SecretTesting
nothing to commit, working directory clean

6. Git branch

  • Công dụng: Để xác định nhánh nào trong local repository, thêm hoặc xóa một nhánh mới.
  • Sử dụng:
# Create a new branch
$ git branch <branch_name>

# List all remote or local branches
$ git branch -a

# Delete a branch
$ git branch -d <branch_name>
  • Trong thực tế thì:
# Create a new branch
$ git branch new_feature

# List branches
$ git branch -a
* SecretTesting
  new_feature
  remotes/origin/stable
  remotes/origin/staging
  remotes/origin/master -> origin/SecretTesting
  
# Delete a branch
$ git branch -d new_feature
Deleted branch new_feature (was 0254c3d).

7. Git checkout

  • Công dụng: Sử dụng git checkoutđể chuyển đổi các chi nhánh.
  • Sử dụng:
# Checkout an existing branch
$ git checkout <branch_name>

# Checkout and create a new branch with that name
$ git checkout -b <new_branch>
  • Thực tế:
# Switching to branch 'new_feature'
$ git checkout new_feature
Switched to branch 'new_feature'

# Creating and switching to branch 'staging'
$ git checkout -b staging
Switched to a new branch 'staging'

8. Git merge

  • Công dụng: Hợp nhất các nhánh với nhau, sử dụng git merge để kết hợp các thau đổi từ nhánh này sang nhánh khác.
  • Sử dụng:
# Merge changes into current branch
$ git merge <branch_name>
  • Trong thực tế:
# Merge changes into current branch
$ git merge new_feature
Updating 0254c3d..4c0f37c
Fast-forward
 homepage/index.html | 297 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 297 insertions(+)
 create mode 100644 homepage/index.html

9. Git remote

  • Công dụng: Để kết nối repository với kho lưu trữ từ xa.
  • Sử dụng:
# Add remote repository
$ git remote <command> <remote_name> <remote_URL>

# List named remote repositories
$ git remote -v
  • Trong thực tế:
# Adding a remote repository with the name of beanstalk
$ git remote add origin git@account_name.git.beanstalkapp.com:/acccount_name/repository_name.git

# List named remote repositories
$ git remote -v
origin git@account_name.git.beanstalkapp.com:/acccount_name/repository_name.git (fetch)
origin git@account_name.git.beanstalkapp.com:/acccount_name/repository_name.git (push)

10. Git clone

  • Công dụng: Để tạo một bản sao làm việc cục bộ với kho lưu trữ từ xa. Sử dụng git clone để sao chép và tải kho lưu trữ về máy tính. Sao chép giống với Git init khi làm việc với kho lưu trữ từ xa.
  • Sử dụng:
$ git clone <remote_URL>
  • Trong thực tế:
$ git clone git@account_name.git.beanstalkapp.com:/acccount_name/repository_name.git
Cloning into 'repository_name'...
remote: Counting objects: 5, done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 5 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (5/5), 3.08 KiB | 0 bytes/s, done.
Checking connectivity... done.

11. Git pull

  • Công dụng: Chạy git pull để tải phiên bản mới nhất của repository. Thao tác với lệnh này kéo các thay đổi từ kho lưu trữ từ xa sang máy tính cục bộ.
  • Sử dụng:
$ git pull <branch_name> <remote_URL/remote_name>
  • Trong thực tế:
# Pull from named remote
$ git pull origin staging
From account_name.git.beanstalkapp.com:/account_name/repository_name
 * branch            staging    -> FETCH_HEAD
 * [new branch]      staging    -> origin/staging
Already up-to-date.

# Pull from URL (not frequently used)
$ git pull git@account_name.git.beanstalkapp.com:/acccount_name/repository_name.git staging
From account_name.git.beanstalkapp.com:/account_name/repository_name
 * branch            staging    -> FETCH_HEAD
 * [new branch]      staging    -> origin/staging
Already up-to-date.

12. Git push

  • Công dụng: Dùng để gửi commit đến kho lưu trữ từ xa. git push sử dụng 2 tham số: kho lưu trữ từ xa và nhánh mà push dành cho.
  • Sử dụng:
$ git push <remote_URL/remote_name> <branch>

# Push all local branches to remote repository
$ git push —all
  • Trong thực tế:
# Push a specific branch to a remote with named remote
$ git push origin staging
Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 734 bytes | 0 bytes/s, done.
Total 5 (delta 2), reused 0 (delta 0)
To git@account_name.git.beanstalkapp.com:/acccount_name/repository_name.git
   ad189cb..0254c3d  SecretTesting -> SecretTesting

# Push all local branches to remote repository
$ git push --all
Counting objects: 4, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 373 bytes | 0 bytes/s, done.
Total 4 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To git@account_name.git.beanstalkapp.com:/acccount_name/repository_name.git
   0d56917..948ac97  master -> master
   ad189cb..0254c3d  SecretTesting -> SecretTesting

Các lệnh Git nâng cao và thường dùng khác

1. Git stash

  • Công dụng: Dùng để lưu các thay đổi được thực hiện nó chưa ở trạng thái commit đến repository.
  • Sử dụng:
# Store current work with untracked files
$ git stash -u

# Bring stashed work back to the working directory
$ git stash pop
  • Trong thực tế:
# Store current work
$ git stash -u
Saved working directory and index state WIP on SecretTesting: 4c0f37c Adding new file to branch
HEAD is now at 4c0f37c Adding new file to branch

# Bring stashed work back to the working directory
$ git stash pop
On branch SecretTesting
Your branch and 'origin/SecretTesting' have diverged,
and have 1 and 1 different commit each, respectively.
  (use "git pull" to merge the remote branch into yours)
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   index.html

no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (3561897724c1f448ae001edf3ef57415778755ec)

2. Git log

  • Công dụng: Để hiển thị lịch sử commit theo thời gian cho một repository.
  • Sử dụng:
# Show entire git log
$ git log

# Show git log with date pameters
$ git log --<after/before/since/until>=<date>

# Show git log based on commit author
$ git log --<author>="Author Name"
  • Trong thực tế:
# Show entire git log
$ git log
commit 4c0f37c711623d20fc60b9cbcf393d515945952f
Author: Brian Kerr <my@emailaddress.com>
Date:   Tue Oct 25 17:46:11 2016 -0500

    Updating the wording of the homepage footer 
    
commit 0254c3da3add4ebe9d7e1f2e76f015a209e1ef67
Author: Ashley Harpp <my@emailaddress.com>
Date:   Wed Oct 19 16:27:27 2016 -0500

    My first commit message

# Show git log with date pameters
$ git log --before="Oct 20"
commit 0254c3da3add4ebe9d7e1f2e76f015a209e1ef67
Author: Ashley Harpp <my@emailaddress.com>
Date:   Wed Oct 19 16:27:27 2016 -0500

    My first commit message

# Show git log based on commit author
$ git log --author="Brian Kerr"
commit 4c0f37c711623d20fc60b9cbcf393d515945952f
Author: Brian Kerr <my@emailaddress.com>
Date:   Tue Oct 25 17:46:11 2016 -0500

    Updating the wording of the homepage footer 

3. Git rm

  • Công dụng: Xóa file hoặc folder khỏi index (staging area). Với git rm có hai tùy chọn cần lưu ý: buộc và lưu vào bộ nhớ cache. Lệnh được lưu trong bộ nhớ cache sẽ xóa file và folder khỏi index.
  • Sử dụng:
# To remove a file from the working index (cached):
$ git rm --cached <file name>

# To delete a file (force):
$ git rm -f <file name>

# To remove an entire directory from the working index (cached):
$ git rm -r --cached <directory name>

# To delete an entire directory (force):
$ git rm -r -f <file name>
  • Trong thực tế:
# To remove a file from the working index:
$ git rm --cached css/style.css
rm 'css/style.css'

# To delete a file (force):
$ git rm -f css/style.css
rm 'css/style.css'

# To remove an entire directory from the working index (cached):
$ git rm -r --cached css/
rm 'css/style.css'
rm 'css/style.min.css'

# To delete an entire directory (force):
$ git rm -r -f css/
rm 'css/style.css'
rm 'css/style.min.css'

4. git rebase và phân biệt với git merge

Cả git rebasegit merge đều giúp tích hợp thay đổi giữa các nhánh, nhưng chúng thực hiện theo cách khác nhau:

  • git merge: Tạo một commit mới để kết hợp hai nhánh. Lịch sử commit được giữ nguyên vẹn, tạo ra hình ảnh phân nhánh. Phương pháp này đơn giản, dễ hiểu, nhưng có thể khiến lịch sử commit trở nên phức tạp nếu có nhiều nhánh và merge thường xuyên.
  • git rebase: Thay vì tạo commit merge mới, git rebase sẽ “viết lại” lịch sử bằng cách di chuyển các commit của nhánh hiện tại lên trên nhánh đích. Kết quả là một lịch sử tuyến tính, gọn gàng hơn. Tuy nhiên, việc viết lại lịch sử này có thể gây ra vấn đề nếu nhánh đã được chia sẻ với người khác. Không nên sử dụng rebase trên nhánh public.

5. Xóa bỏ trạng thái của một vài commit gần đây

  • git revert <commit_id>: Tạo một commit mới đảo ngược lại thay đổi từ commit chỉ định. Phù hợp khi muốn giữ lịch sử commit và không thay đổi trạng thái các commit sau.
  • git reset --hard <commit_id>: Xóa toàn bộ các commit sau commit chỉ định và đưa nhánh về đúng trạng thái tại commit đó. Lưu ý: thao tác này không thể hoàn tác.
  • git reset --soft <commit_id>: Con trỏ được đưa về commit chỉ định nhưng giữ nguyên trạng thái file. Các file vẫn còn trong vùng staging.

 6. Gộp nhiều commit thành một commit duy nhất

Sử dụng lệnh: git rebase -i <commit_end> hoặc git reset <commit_end>.

  •  Trong đó <commit_end> là commit cuối cùng trong nhóm commit bạn muốn gộp.
  • Bạn có thể chọn tùy chọn squash trong cửa sổ interactive để gộp commit.

7. git cherry-pick – Lấy một commit từ nhánh khác về nhánh hiện tại

Công dụng: Trích xuất một commit cụ thể từ một nhánh khác và áp dụng nó vào nhánh hiện tại mà không cần merge toàn bộ nhánh.

Cách sử dụng:

git checkout <my_branch>
git cherry-pick <commit_id>

Lời khuyên khi sử dụng Git trong công việc

1. Git cheet sheet

Khi làm việc bạn cũng không thể nào nhớ toàn bộ các lệnh, thì bạn nên sử dụng công cụ hỗ trợ là Git Cheet Sheet để tìm kiếm được lệnh git cần thiết khi làm việc:

2. Nên commit thường xuyên

Nên tách nhỏ commit và thực hiện commit thường xuyên nhất. Nó có ích cho các thành viên trong nhóm dễ dàng tích hợp công việc với nhau mà không gặp phải xung đột hợp nhất.

3. Test rồi mới commit

Không được commit nếu chưa hoàn tất quá trình. Ngoài ra trước khi chia sẻ những thay đổi của bạn với người khác phải được test kĩ càng.

4. Viết ghi chú khi commit

Viết ghi chú khi commit để các thành viên trong nhóm nhận biết được loại thay đổi bạn đã thực hiện.

Một số lưu ý khi làm việc với Git

  • Hãy lưu ý không nên commit nếu chưa hoàn tất process. Bạn nên test các thay đổi của bạn trước khi public.
  • Nên commit thường xuyên bằng cách tách nhỏ từng commit của bạn và commit thường xuyên. Điều này sẽ hỗ trợ cho các thành viên trong nhóm dễ dàng tích hợp các công việc của họ hơn.
  • Viết các ghi chú commit để cho các thành viên khác trong nhóm biết các thay đổi của bạn đã thực hiện. Nếu thực hiện càng cụ thể và chi tiết thì càng tốt.
  • Bạn cần tận dụng các lợi ích của branch để giúp bạn dễ dàng theo dõi các dòng phát triển khác nhau.
  • Bạn cũng nên theo một Git Workflow để đảm bảo sự đồng nhất giữa các thành viên trong nhóm.

Tăng tốc hiệu suất với VPS tốc độ cao từ Vietnix

Vietnix là nhà cung cấp dịch vụ VPS tốc độ cao và ổn định hàng đầu, đáp ứng mọi nhu cầu triển khai ứng dụng, phát triển phần mềm. 

Với hạ tầng mạnh mẽ và công nghệ tiên tiến, Vietnix cam kết mang đến hiệu suất vượt trội, giúp bạn tối ưu hóa quy trình làm việc và đạt được thành công trong các dự án công nghệ. Dù bạn là nhà phát triển cá nhân hay doanh nghiệp, Vietnix đều có giải pháp VPS phù hợp, hỗ trợ bạn triển khai mọi ứng dụng từ đơn giản đến phức tạp một cách dễ dàng và hiệu quả.

Thông tin liên hệ:

  • Địa chỉ: 265 Hồng Lạc, Phường Bảy Hiền, Thành Phố Hồ Chí Minh
  • Hotline: 1800 1093
  • Email: sales@vietnix.com.vn
  • Website: https://vietnix.vn/ 

Câu hỏi thường gặp

Github là gì?

GitHub là một hệ thống quản lý dự án và phiên bản code, GitHub được coi giống như một mạng xã hội dành riêng cho các lập trình viên. Với GitHub, các lập trình viên có thể clone lại mã nguồn từ một repository. Nó cũng là một dịch vụ máy chủ repository giúp lưu trữ code và mỗi người có thể tạo tài khoản trên đó để tạo ra các kho chứa của riêng mình để làm việc. Xem chi tiết về Github.

Git init là gì

Trong Git, lệnh git init được sử dụng để khởi tạo một kho lưu trữ Git mới. Kho lưu trữ Git là một thư mục ẩn chứa tất cả dữ liệu cần thiết để quản lý phiên bản mã nguồn của một dự án.

Git và SVN khác nhau như thế nào?

Git và SVN là hai hệ thống kiểm soát phiên bản (version control systems) khác nhau, với Git là một hệ thống phân tán và SVN là một hệ thống tập trung. Sự khác biệt chính nằm ở cách chúng quản lý và lưu trữ dữ liệu, cũng như cách người dùng tương tác với hệ thống.

Tại sao lập trình viên nên sử dụng Git trong dự án?

Lập trình viên nên sử dụng Git vì cung cấp khả năng quản lý phiên bản mã nguồn, hỗ trợ làm việc nhóm hiệu quả và giúp theo dõi lịch sử thay đổi của dự án. Git cho phép quay lại các phiên bản trước đó, phát hiện và sửa lỗi dễ dàng, đồng thời giảm thiểu xung đột trong quá trình làm việc nhóm.

Git Bash là gì?

Git Bash là một ứng dụng dòng lệnh mô phỏng môi trường Unix, được cung cấp cùng với Git cho Windows. Ứng dụng này cho phép người dùng sử dụng các lệnh Git và các lệnh Unix/Linux phổ biến khác trên hệ điều hành Windows, giúp việc quản lý mã nguồn và làm việc với Git trở nên dễ dàng hơn.

Bitbucket là gì?

Bitbucket là một dịch vụ lưu trữ và quản lý mã nguồn trực tuyến, tương tự như GitHub, nhưng được phát triển bởi Atlassian. Bitbucket chủ yếu tập trung vào việc hỗ trợ các nhóm phát triển phần mềm làm việc cùng nhau, theo dõi, quản lý và chia sẻ mã nguồn dự án. 
Bitbucket sử dụng Git (hoặc Mercurial) làm hệ thống quản lý phiên bản và cung cấp các tính năng như tích hợp với Jira và Trello, tự động hóa quy trình làm việc (CI/CD) thông qua Bitbucket Pipelines. 

GitLab là gì?

GitLab là một nền tảng DevOps mã nguồn mở, cung cấp các công cụ quản lý mã nguồn, kiểm soát phiên bản, và tự động hóa quy trình CI/CD (Tích hợp liên tục/Triển khai liên tục). Về cơ bản, GitLab cho phép các nhà phát triển lưu trữ, quản lý và cộng tác trên mã nguồn, đồng thời tự động hóa quá trình phát triển và triển khai phần mềm. 

Git viết tắt của từ gì?

Git không phải là từ viết tắt của bất kỳ cụm từ nào. Tên “Git” được Linus Torvalds, người tạo ra hệ điều hành Linux, đặt khi ông phát triển Git vào năm 2005.

Git commit là gì?

Trong Git, commit là một lệnh dùng để lưu lại các thay đổi của bạn vào kho lưu trữ (repository) của Git.

Trên đây là những thông tin cơ bản để giúp bạn hiểu hơn về Git là gì, cùng một số lệnh mà bạn có thể tham khảo để sử dụng trong quá trình làm việc mang lại hiệu suất cao hơn. Hy vọng bài viết trên sẽ mang đến những thông tin hữu ích cho bạn. Chúc các bạn thành công.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Banner group
Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

Icon tab

MAXSPEED HOSTING

TĂNG TỐC WEBSITE TOÀN DIỆN

CÔNG NGHỆ ĐỘC QUYỀN

Vector

PHẦN CỨNG MẠNH MẼ

Vector

HỖ TRỢ 24/7

Vector
ĐĂNG KÝ NGAYGroup icon
khuyến mãi tháng 7
Nhanh tay, số lượng có hạn!
23/06/2025 - 31/07/2025
Pattern

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

icon popup single post

CẢM ƠN BẠN ĐÃ ĐÁNH GIÁ BÀI VIẾT

Vietnix sẽ luôn cố gắng cải thiện chất lượng dịch vụ mỗi ngày

ĐÓNG

Đánh giá mức độ hữu ích của bài viết

icon 1 sao

Thất vọng

icon 2 sao

Chưa hữu ích

icon 3 sao

Bình thường

icon 4 sao

Hữu ích

icon 5 sao

Rất hữu ích

Icon
ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1

ĐĂNG KÝ DÙNG THỬ HOSTING

Asset

7 NGÀY MIỄN PHÍ

Asset 1
Icon
XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG