Git Là Gì? Các lệnh Git cơ bản, nâng cao mà lập trình viên cần biết

Lượt xem
Home

Bạn đang quan tâm Git là gì? Cách thức hoạt động của Git ra sao? Vì đây là một công cụ hữu ích trong quá trình làm việc của bạn khi phải sử dụng nhiều với giao diện code. Hãy theo dõi bài viết dưới đây của Vietnix nhé!

Git là gì?

Git là một hệ thống quản lý mã nguồn phân tán (Distributed Version Control System – DVCS). Git cung cấp cho mỗi lập trình viên kho lưu trữ (repository) gọi tắt là Repo – là nơi chứa cơ sở dữ liệu (database) tất cả những thông tin cần thiết để duy trì và quản lý các sử đổi và lịch sử của dự án. Git trở thành một trong các phần mềm quản lý mã nguồn phổ biến nhất.

Git là gì?
Git là gì?

Git là một hệ thống kiểm soát phiên bản (Version Control System) mã nguồn mở miễn phí. Nó theo dõi các project và file khi chúng thay đổi theo thời gian. Cùng với đó là sự trợ giúp của những người đóng góp khác nhau. Sau khi nắm được định nghĩa Git là gì, dưới đây sẽ giúp bạn hiểu rõ hơn về Version Control System. Cùng tìm hiểu nhé.

Version Control System là gì?

Version Control System viết tắt là (VCS)hệ thống kiểm soát các phiên bản phân tán mã nguồn mở. VCS sẽ theo dõi và lưu trữ tất cả các file trong toàn bộ dự án và 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 version (phiên bản). 

Version Control System
Version Control System

Đây là hệ thống giúp các lập trình viên lưu trữ nhiều phiên bản khác nhau trong mã nguồn đã được nhân bản từ kho lưu trữ (repository). Mỗi thay đổi đổi trên mã nguồn được commit đưa lên server nơi chứa kho chứa chính. 

Mỗi phiên bản sẽ bao bồm các thành phần: 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ợ cho các lập trình viên tiện theo dõi và xem lại các danh sách thay đổi của file theo dòng thời gian.

Xem thêm: Gitlab là gì?

Version Control System có tác dụng gì?

Git vốn đã là một (Version Control System -VCS) nên Git cũng sẽ ghi nhớ và lưu lại toàn bộ thay đổi trên source code của bạn. Những thành phần Git có thể ghi lại như: thêm code ở đâu, sửa code ở dòng nào, người thay đổi là ai,… tất cả sẽ được Git ghi lại và lưu trữ nó.

Lợi ích của Version Control System
Lợi ích của Version Control System

Có 2 lợi ích cơ bản và quan trọng của VCS là:

  • Lưu lại toàn bộ lịch sử thay đổi của phiên bản. Giúp lập trình viên theo dõi và khôi phục dễ dàng sau này.
  • Việc chia sẻ code có thể public cho bất kỳ ai, và cũng có thể để chế độ private cho những người có thẩm quyền được truy cập và tải code về. Giúp việc chia sẻ đơn và dễ dàng với Git.

Cách thức hoạt động của Git là gì?

Hầu hết các hệ thống đều lưu trữ thông tin dưới dưới dạng danh sách các thay đổi của file.

Ví dụ: các hệ thống: CVS, Subversion, Perforce,…

Git coi các thông tin lưu trữ thành một tập hợp snapshot (ảnh chụp toàn bộ nội dung của file tại thời điểm đó). Mỗi khi commit thì Git sẽ chụp và tạo ra một snapshot cùng một tham chiếu tới snapshop đó.

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

Để bắt đầu Git, chuyển đến terminal và chạy lệnh sau trong thư mục dự án của bạn để khởi tạo một thư mục dự án.

git init

Chạy lệnh sau để thêm file cho Git theo dõi. Thao tác này sẽ thêm các file này vào staging area.

git add <filename_one>

Chạy lệnh sau để commit các thay đổi của bạn đối với các file này.

git commit <filename_one>

Và chúng ta có thể push các thay đổi của mình sau khi hoàn tất.

git push

Cùng với việc thực hiện thêm bất kỳ thay đổi nào trong branch master sẽ yêu cầu các thay đổi này phải được commit lại.

Tính năng vượt trội của Git so với SVN

Git là hệ thống quản lý mã nguồn theo hướng phân tán nên Git mang lại những lợi thế lớn trong việc hỗ trợ teamwork, phân chia task và tổng hợp code dễ dàng hơn.

Sắp xếp công việc hiệu quả

Bạn có thể tập trung xử lý từng task mà không phải bận tâm đến các task liên quan, làm cho các task không kịp deadline. Khi sử dụng Git thì bạn hoàn toàn có thể kiểm soát và phân chia các task hiệu quả hơn.

Sử dụng nhiều task linh hoạt

Như đã đề cập ở trên, thì khi sử dụng Git nó mang lại cho việc phân chia và sắp xếp các task dễ dàng. Vì vậy, bạn cũng có thể dễ dàng thực hiện nhiều task cùng một lúc đơn giản hơn.

Sử dụng nhiều task linh hoạt
Sử dụng nhiều task linh hoạt

Thử nghiệm ý tưởng mới

Bạn có thể thử nghiệm nhiều tính năng mới và được tách biệt ra khỏi dự án chính. Điều này, giúp bạn có thể thử nghiệm nhiều ý tưởng sáng tạo và cũng là để kiểm tra cho dự án một cách chỉnh chu hơn. Nâng cao được chất lượng code cho dự án chính. Git được đánh giá rất cao trong ngành, bạn nên tìm hiểu về chi tiết về Git, cũng như cách sử dụng nó để đem lại hiệu quả cao trong công việc của mình.

Git có thể làm offline

Git ngày càng ưu việt hơn so với hệ thống quản lý phiên bản tập trung (SVN). Git có thể cho phép bạn làm việc offline trong một khoảng thời gian. Bạn chỉ cần kết nối Internet khi làm việc nhóm, hoặc lưu lịch sử commit code lên remote repos. Còn SVN khi sử dụng bạn cần kết nối đến máy chủ SVN.

Lưu trữ thông tin

Git lưu trữ thông tin mà bạn có thể sử dụng nhiều điều thú vị để viết lại lịch sử commit. Khi tách nhánh, Git sử dụng 41 bytes cho một nhánh mới, giúp tiết kiệm không gian lưu trữ mà vẫn đảm bảo tốt nhu cầu làm việc. Thường SVN sẽ copy toàn bộ source code thành một bản mới khi tách nhóm.

Git miễn phí

Ngoài những tính năng ở trên, thì Git sử dụng phổ biến cũng vì là Git miễn phí. Tất cả mọi người đều có thể sử dụng những chức năng cơ bản của Git mà không cần bất kì cơ sở hạ tầng server nào.

Quy trình xử lý công việc (workflow) trên Git là gì?

Khi sử dụng Git bạn nên lưu ý là dùng Git giúp bạn quản lý mã nguồn mà không thể chỉnh code trong Git. Bạn có thể thực hiện các công việc của mình trên môi trường làm việc với các chức năng tiện ích trên IDE của ngôn ngữ lập trình khác. Quy trình xử lý công việc trên Git sẽ như sau:

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 là gì?

Git là gì? Chắc bạn cũng có thể nắm qua. Thì thường các lập trình viên sẽ làm các dự ấn song song, nên sử Git là cần thiết để đảm bảo việc quản lý và không bị xung đột code giữa các thành viên khác. Và trong các dự án cũng thay đổi thường xuyên, vì vậy nên một hệ thống kiểm soát phiên bản cho phép các nhà phát triển có thể quay lại khôi phục các thay đổi trước đó.

  • Dễ sử dụng, thao tác dễ dàng và đơn giản, đảm bảo an toàn.
  • Dễ phân nhánh các branch, có thể giúp quy trình làm việc đucợ hiệu quả hơn.
  • Bạn có thể clone mã nguồn từ kho lưu trữ hoặc có thể clone một file thay đổi nào đó, hay các nhánh nào đó.
  • Deployment sản phẩm của bạn một cách dễ dàng.

Các thuật ngữ quan trọng trong Git

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

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'

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.

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.

Lời kết

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 của Vietnix sẽ mang đến những thông tin hữu ích cho bạn. Chúc các bạn thành công.

Chia sẻ lên

Theo dõi trên

Logo Google new

Đánh giá

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

Hưng Nguyễn

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

Icon Quote
Icon Quote
Đăng ký nhận tin
Để không bỏ sót bất kỳ tin tức hoặc chương trình khuyến mãi từ Vietnix

Bình luận

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

Chỉ số tăng trưởng

Điểm Desktop

100 (+39)

Điểm Mobile

100 (+67)

Core Web Vitals

Passed

Lĩnh vực

Ecommerce

Chỉ số tăng trưởng

Điểm Desktop

99 (+28)

Điểm Mobile

100 (+50)

Core Web Vitals

Passed

Lĩnh vực

SEO

Chỉ số tăng trưởng

Điểm Desktop

99 (+26)

Điểm Mobile

98 (+59)

Core Web Vitals

Passed

Lĩnh vực

Ecommerce

Chỉ số tăng trưởng

Điểm Desktop

100 (+8)

Điểm Mobile

98 (+35)

Core Web Vitals

Passed

Lĩnh vực

Giáo Dục

Chỉ số tăng trưởng

Điểm Desktop

100 (+61)

Điểm Mobile

100 (+61)

Core Web Vitals

Passed

Lĩnh vực

Giáo Dục

Võ Thiên Tòng

25 Tháng 2 lúc 21:09

·

Mình muốn gửi lời cảm ơn chân thành đến Team Vietnix, anh Hưng Nguyễn, anh Vietnix Trung, em Quốc Huy đã hỗ trợ tối ưu Page Speed Insight (PSI) cho website vanvoiminhhoa.vn của mình.
Biết đến anh Hưng đã lâu nhưng chưa có duyên sử dụng dịch vụ bên anh. Tình cờ thấy được bài Post của anh về việc hỗ trợ tối ưu PSI miễn phí chỉ với vài Slot, thấy AE cmt khá nhiều nên cũng không nghĩ tới lượt mình. Hôm sau đánh liều inbox 1 phen xem sao thì may mắn được đưa vào danh sách. Vài ngày sau được Team Vietnix liên hệ và hỗ trợ.
Kết quả đạt được:
• Điểm xanh lè xanh lét
• Tốc độ tải trang nhanh hơn hẳn
• Các chỉ số cũng được cải thiện đáng kể
• Và mình tin rằng với việc PSI được cải thiện cũng thúc đẩy những thứ khác đi lên theo!
Mình thực sự hài lòng với dịch vụ của Vietnix và muốn giới thiệu đến tất cả mọi người:
• Dịch vụ Wordpress Hosting: Tốc độ nhanh, ổn định, bảo mật cao, hỗ trợ kỹ thuật 24/7. (https://vietnix.vn/wordpress-hosting/)
• Dịch vụ Business Hosting: Dung lượng lớn, phù hợp cho website có lượng truy cập cao, tích hợp nhiều tính năng cao cấp. (https://vietnix.vn/business-hosting/)
Đặc biệt, Vietnix đang có chương trình ưu đãi:
• Giảm giá 20% trọn đời khi nhập code THIENTONG_PAGESPEED tại trang thanh toán (Chu kỳ 12 tháng trở lên)
• Tặng 1 lần tối ưu điểm Page Speed Insight cho 1 website
Cám ơn Vietnix một lần nữa!
#Vietnix #Vanvoiminhhoa #Pagespeedinsight
Trước khi tối ưu
Sau khi tối ưu
Thiện Nguyễn - CEO SEO Dạo

5 Tháng 3 lúc 16:21

·

CORE WEB VITAL YẾU TỐ XẾP HẠNG TÌM KIẾM SEO
Core Web Vitals là một tập hợp các chỉ số đo lường hiệu suất của trang web từ góc độ người dùng, được Google sử dụng để đánh giá trải nghiệm người dùng trên các trang web. Các chỉ số chính bao gồm:
– Largest contentful paint (LCP): Tốc độ render của page. Mục tiêu là dưới 2,5 giây.
– First input delay (FID): Tốc độ phản hồi của website với tương tác của người dùng. Mục tiêu là dưới 100ms.
– Cumulative Layout Shift (CLS): Độ ổn định của bố cục trang. Mục tiêu là dưới 0.1.
Tất cả các chỉ số này đo lường các khía cạnh quan trọng của trải nghiệm người dùng trên trang web. Google đã công bố rằng từ tháng 5 năm 2021, các Core Web Vitals sẽ được sử dụng làm một trong các yếu tố đánh giá trong việc xếp hạng trang web trên kết quả tìm kiếm. Do đó, hiểu và cải thiện các Core Web Vitals là rất quan trọng đối với SEO.
Tóm lại, Core Web Vitals không chỉ giúp cải thiện hiệu suất và xếp hạng trang web trên công cụ tìm kiếm, mà còn cải thiện trải nghiệm của người dùng khi họ truy cập và tương tác với trang website.
P/s: mình đang có gói hỗ trợ đặc biệt cho anh em tối ưu tốc độ bên VIETNIX:
– Giảm 20% lifetime dịch vụ Hosting Business và Hosting Wordpress chu kỳ 12 tháng trở lên.
– Tặng 1 lần tối ưu điểm Page Speed Insight cho 1 website.
Anh em có nhu cầu đăng ký qua bạn Vietnix Trung này nhé và nhập mã SEODAO_PAGESPEED để được ưu đãi nhé.😁
Trước khi tối ưu
Sau khi tối ưu SEO Dạo
Icharm review

5 Tháng 3 lúc 15:43

·

[Mình vừa được hỗ trợ tối ưu page speed website]
Trước khi được tối ưu, web của mình điểm rất thấp, đặc biệt là mobile chỉ có 39. Cơ duyên thế nào lúc lướt face lại va phải chương trình tối ưu pagespeed bên Vietnix.
Sau khi được Trần Hoàng Phúc và team Vietnix hỗ trợ nhiệt tình, điểm web vọt lên 98 99 (như hình bên dưới). Dùng thử web thì thấy quá là mượt, 10 điểm cho team Vietnix.
Nói thật thì mình thật sự ấn tượng về sự nhiệt huyết, tận tâm và rất chuyên nghiệp bên Vietnix.
Anh em có nhu cầu về hosting hay có vấn đề về website như:
1. Web load chậm
2. Khách rời web vì đợi tải nội dung, hình ảnh lâu
3. Hay tất tần tật mọi thứ về website
THÌ LIÊN HỆ NGAY VIETNIX NHÉ!
Và đừng quên dùng pass “ICHARM_PAGESPEED” để được giảm 20% trọn đời hosting business và wp hosting. Quả code này còn được tặng 1 lần tối ưu pagespeed nữa nhé, ưu đãi chắc cũng phải nhất nhì thị trường luôn.
Trước khi tối ưu
Sau khi tối ưu
Hoàng Nguyễn

29 Tháng 2 lúc 17:04

·

Xin chào mọi người! Vừa rồi mình có sử dụng dịch vụ tối ưu website, tăng tốc độ tải trang pagespeed của Vietnix kết quả trên cả tuyệt vời nên mình viết bài này để chia sẻ thông tin với các bạn.
Lý do mình chọn dịch vụ tối ưu tốc độ website của Vietnix:
✅ Đội ngũ chuyên gia giàu kinh nghiệm: Đã tối ưu thành công cho hàng nghìn website trong nhiều lĩnh vực khác nhau. Các bạn nhân viên rất thân thiện, nhiệt tình và chủ động trong quá trình làm việc để cập nhật tiến độ.
✅ Quy trình chuyên nghiệp:
– Kiểm tra và phân tích: Vietnix sử dụng các công cụ tiên tiến để kiểm tra và phân tích tốc độ website của bạn.
– Xác định nguyên nhân: Vietnix xác định nguyên nhân khiến website tải chậm và đưa ra giải pháp tối ưu phù hợp.
– Tối ưu hóa website: Vietnix áp dụng các kỹ thuật tối ưu tiên tiến nhất để tăng tốc độ tải trang.
– Báo cáo kết quả: Vietnix cung cấp báo cáo chi tiết về kết quả tối ưu hóa website.
Công nghệ tiên tiến: Vietnix sử dụng các công nghệ tối ưu mới nhất như LiteSpeed, LSCache, Memcached, Redis, v.v.
✅ Cam kết kết quả: Vietnix cam kết tăng tốc độ website của bạn lên tối thiểu 90%.
✅ Giá cả cạnh tranh: Vietnix cung cấp dịch vụ tối ưu tốc độ website với mức giá cạnh tranh nhất trên thị trường.
📣 Để đăng ký sử dụng dịch vụ tối ưu tốc độ website và các dịch vụ khác như hosting, vps, domain… các bạn có thể đăng ký tại https://portal.vietnix.vn/aff.php?aff=57 hoặc Inbox cho sếp Vietnix Trung nhé.
Các bạn có thể kiểm tra tốc độ trang của mình https://lasan.edu.vn hoặc một vài trang khác đã sử dụng dịch vụ của Vietnix như sau:
https://pagespeed.web.dev/…/https…/v8beqewyt2…
https://pagespeed.web.dev/…/https…/etiohjvtl4…
https://pagespeed.web.dev/…/https…/yczuqpw6d1…
https://pagespeed.web.dev/…/https…/xf9y65kuzk…
https://pagespeed.web.dev/…/https…/fdrsms15en…
https://pagespeed.web.dev/…/https…/s7p9cgzeri…
Trước khi tối ưu
Sau khi tối ưu
Dũng cá xinh

30 Tháng 1 lúc 19:09

·

[Đỉnh]
Em có dùng hosting, vps, cloud vps, cloud server, dedicated server của rất nhiều bên từ trong nước đến nước ngoài để hosting khoảng 2,000+ domain. Mỗi bên đều có ưu nhược khác nhau, nhưng có 1 số bên đặc biệt “bá đạo”, trong đó có: Vietnix!!!!

Lần đầu tiên em được cả CEO Hưng Nguyễn lẫn Master về dev Vietnix Trung của 1 đơn vị hàng đầu liên quan đến Hosting, Server support từ A – Z (từ Zalo, Tele, đến FB và cả Phone)

Em có khá nhiều web dạng Big Data (bài, ảnh, database, data) lên đến hàng trăm Gb. Càng to thì nó càng có nhiều vấn đề về phần phản hồi ban đầu (nhược điểm cố hữu của php wordpress so với nativejs, reactjs, html, headless,…), và anh em Vietnix có nhã ý hỗ trợ xử lý phần Speed Insight này.

Kết quả thực sự kinh ngạc, từ cách trao đổi đến xử lý vấn đề, cut off những cái cần cut off, xử lý rất sâu vấn đề và gợi ý rất nhiều ý tưởng optimize hệ thống!!!! Thực sự quá hài lòng về kết quả cũng như cách tương tác của các đầu tầu bên Vietnix ^^!!!

Nhân cơ duyên được kết nối với những cao thủ của Vietnix, em xin chia sẻ và lan tỏa để nhiều anh em có cơ hội được sử dụng những dịch vụ tốt nhất với giá vô cùng hợp lý!!!!

1 – Với anh em chưa có hosting, em đặc biệt recommend sử dụng hosting bên Vietnix:
– Sử dụng mã DUNGCAXINH_PAGESPEED sẽ được giảm 20% trọn đời (lifetime luôn)
– Áp dụng các gói Hosting Business, Hosting wordpress và reg 1 năm trở lên
– Anh em chưa biết cách reg thì còm men hoặc ib để em hướng dẫn hoặc nhờ các bạn bên Vietnix support từ A – Z

2 – Anh em có hosting rồi và muốn build blog hoặc web = wordpress mà chưa có giao diện thì nhân tiện em đang có tài khoản Premium bên Envato, em sẽ tặng bất kỳ giao diện nào có trên Envato Themes (Link em để dưới còm men) ạ. Cả nhà còm hoặc ib em Themes mà mọi người “chim ưng”, em sẽ cho anh em tải về, up drive và gửi ạ!!! (Chương trình này kéo dài đến ngày 29 tết âm lịch ạ)

3 – BEST NHẤT luôn!!!! Anh em nào mua hosting dùng mã DUNGCAXINH_PAGESPEED sẽ được tối ưu 100 điểm tốc độ cho 1 web (đây là ưu đãi riêng của CEO Hưng Nguyễn dành cho bạn bè của #dungcaxinh ^^) (Giá trị nhất là cái vụ số 3 này anh chị em nhé ^^), cơ hội vàng để move về đơn vị hosting uy tín là đây ^^!!!!

Một lần nữa xin chân thành cám ơn 2 đồng chí em: Hưng Nguyễn và Vietnix Trung đã giải được một bài toán khó cho các trang WP Big data mà anh loay hoay bao lâu nay chưa tìm ra đáp án!!! Chúc Vietnix ngày càng phát triển và có một năm 2024 đại đại thắng nhé ^^ !!!!!
#SEO #Vietnix #dungcaxinh

Trước khi tối ưu
Sau khi tối ưu
Hiếu AI

2 Tháng 2 lúc 21:06

·

UY TÍN – TẬN TÂM – TỐC ĐỘ

3 từ trên là vẫn chưa đủ để nói về quy trình làm việc cực chuyên nghiệp của team Vietnix.Chuyện là mình có con website chính đang có lượt truy cập organic hàng ngày cũng tương đối (hình 1)

Vấn đề là, con site này đang nằm trên hosting dùng chung nên tốc độ load chưa nhanh, tốc độ load chưa nhanh thì trải nghiệm visitor chưa tốt, trải nghiệm visitor chưa tốt thì tỷ lệ chuyển đổi ra đơn hàng kiểu gì thì kiểu cũng sẽ bị ảnh hưởng.

Biết rõ là đang mất tiền nhưng không biết xử lý như lào, nghĩ mà cay.

Đang loay hoay thì vận may nó tới, hôm qua đang lướt phở bò thấy a Nguyễn Việt Dũng đăng bài, rảnh nên thả cái comment hóng hớt, ai ngờ ngoằng phát thấy ông Dũng tạo nhóm với Vietnix Trung luôn.

Ae Vietnix thì siêu tốc độ, lập tức lấy thông tin vào việc, không hỏi han lằng nhằng, không kỳ kèo chốt đơn dù lúc đấy cũng đang đêm muộn.
Sáng hôm sau dậy vẫn còn đang lơ ngơ mở điện thoại check tin nhắn thì đã thấy ae Vietnix báo xong việc, trong khi mình vẫn chưa biết có chuyện gì xảy ra @@.

Được cái bấm thử website thì thấy load siêu nhanh, chưa tới một giây là thông tin các thứ hiện hết. Quá phê, thả con ảnh trước sau (hình 2,3) để ace tiện đối chiếu nhé. Thế này thì mình gửi gắm nốt 15 em website còn lại cho team Vietnix thôi chứ không cần nghĩ ngợi gì nữa. 10/10.

Nên là:

  1. Anh chị em muốn có một con website tốc độ load nhanh như tốc độ trở mặt của nyc – Dùng ngay dịch vụ hosting của Vietnix
  2. Anh chị em có website rồi muốn tìm bên hosting uy tín, chuyên nghiệp hỗ trợ không quản ngày đêm – Liên hệ ngay Vietnix Trung
  3. Anh chị em quan tâm đến trải nghiệm khách hàng, từ những cái nhỏ nhất như tăng tốc độ website – Better call Vietnix Trung

Và đừng quên dùng pass “HIEUAI_PAGESPEED” để được giảm 20% trọn đời hosting business và wp hosting, quả code này còn được tặng 1 lần tối ưu pagespeed nữa nhé, ưu đãi chắc cũng phải nhất nhì thị trường luôn.
#SEO #Vietnix #hieuai

Website
Trước khi tối ưu
Sau khi tối ưu

Chỉ số tăng trưởng

Điểm Desktop

100 (+43)

Điểm Mobile

100 (+74)

Core Web Vitals

Passed

Lĩnh vực

AI