+4

Git Cơ Bản Cho Người Mới Bắt Đầu - P1

Hiểu Về Git Cơ Bản Và Các Lệnh Thường Dùng

Git là một hệ thống quản lý phiên bản phân tán (Distributed Version Control System - DVCS) được sử dụng rộng rãi trong phát triển phần mềm. Git cho phép nhiều người cùng làm việc trên một dự án, theo dõi thay đổi của mã nguồn theo thời gian, và dễ dàng khôi phục lại các phiên bản cũ nếu cần.

Các Khái Niệm Cơ Bản

  • Repository: Nơi lưu trữ toàn bộ mã nguồn, lịch sử thay đổi và thông tin của dự án. Có 2 loại:
    • Local Repository: Nằm trên máy tính của mỗi lập trình viên.
    • Remote Repository: Nằm trên máy chủ, thường được lưu trữ trên các dịch vụ như Github, Gitlab, Bitbucket.
  • Branch: Là nhánh con của dự án, cho phép phát triển tính năng mới hoặc sửa lỗi độc lập mà không ảnh hưởng đến nhánh chính (thường là main hoặc master).
  • Working Directory: Là thư mục bạn đang làm việc trực tiếp với mã nguồn trên máy tính.
  • Staging Area: Là khu vực trung gian, nơi bạn "chuẩn bị" các thay đổi trước khi đưa vào repository.

  • Working Directory: Working Directory là thư mục trên máy tính của bạn nơi bạn thực hiện các thay đổi vào các tập tin của dự án. Đây là nơi bạn tạo, sửa đổi và xóa các tệp tin.
  • Staging Area: Staging Area (hay còn gọi là Index) là nơi tạm thời lưu trữ các thay đổi sẽ được đưa vào Repository trong lần commit tiếp theo.
  • Repository: Repository là nơi lưu trữ toàn bộ lịch sử của dự án, bao gồm tất cả các phiên bản của các tệp tin cũng như các thông tin liên quan đến commit. Flow hoạt động cơ bản

Các Lệnh Git Cơ Bản

1. Git Init

Lệnh git init dùng để khởi tạo một repository Git mới trong thư mục hiện tại. Khi bạn chạy lệnh này, Git sẽ tạo một thư mục con ẩn .git chứa toàn bộ thông tin cần thiết để Git theo dõi thay đổi của dự án.

git init

Ví dụ:

$ git init
Initialized empty Git repository in /Users/username/my-project/.git/

Lưu ý: Lệnh git init chỉ cần chạy một lần duy nhất cho mỗi dự án.

2. Git Clone

Lệnh git clone dùng để tạo một bản sao (clone) của một repository Git từ xa (remote) về máy tính của bạn.

git clone <URL>

Trong đó <URL> là địa chỉ của remote repository, có thể là SSH hoặc HTTPS.

Ví dụ:

git clone git@github.com:username/my-project.git 

Xem thêm: cách tạo và kết nối ssh Kết nối với Github bằng SSH

3. Git Status

Lệnh git status dùng để kiểm tra trạng thái hiện tại của repository. Lệnh này cho biết:

  • Những thay đổi đã được staging (sẵn sàng để commit).
  • Những thay đổi chưa được staging.
  • Những file chưa được Git theo dõi.
git status

Ví dụ:

$ git status
On branch main
Your branch is up to date with 'origin/main'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   README.md

no changes added to commit (use "git add" and/or "git commit -a")

Hiển thị ngắn gọn:

git status -s

Ý nghĩa các ký tự:

  • M: Modified (có sửa đổi)
  • A: Added (file mới thêm)
  • D: Deleted (file bị xóa)
  • R: Renamed (đổi tên file)
  • C: Copied (file copy từ file khác)
  • U: Updated but unmerged (đã cập nhật, nhưng chưa merge)

4. Git Add

Lệnh git add dùng để thêm thay đổi từ working directory vào staging area.

git add <tên file> 

Hoặc thêm tất cả thay đổi:

git add .

5. Git Commit

Lệnh git commit dùng để "ghi" (commit) các thay đổi từ staging area vào repository.Việc chuẩn đổi khu vực này sẽ giúp cho Git sẽ hiểu rằng commit này đã sẳn sàng để push lên Git Server

git commit -m "Mô tả ngắn gọn về thay đổi"

Ví dụ:

git commit -m "Cập nhật README.md"

6. Git Remote

Lệnh git remote dùng để quản lý kết nối giữa local repository và remote repository. Việc này như bạn kết nối từ máy tính local của bạn đến với Git , nếu không có việc kết nối này thì bạn không thể kết nối được với git và thực hiện các câu lệnh tương tác với git

  • Liệt kê remote repository:

    git remote 
    
  • Thêm remote repository:

    git remote add <tên> <URL>
    
  • Đổi tên remote repository:

    git remote rename <tên cũ> <tên mới>
    
  • Xóa remote repository:

    git remote remove <tên>
    
  • Cập nhật URL của remote repository:

    git remote set-url <tên> <URL mới>
    

7. Git Push

Lệnh git push dùng để đẩy (push) các commit từ local repository lên remote repository. Việc push rất quan trongj trong quá trình code nếu có sự cố gì thì có thể lấy lại code đã được lưu trữ bằng câu lệnh git clone

  • Đẩy commit lên nhánh mặc định (thường là main hoặc master):

    git push <tên remote> <nhánh local>
    

    Ví dụ:

    git push origin main
    
  • Đẩy commit lên nhánh cụ thể:

    git push <tên remote> <nhánh local>:<nhánh remote>
    
  • Tạo nhánh mới trên remote repository:

    git push <tên remote> <nhánh local>
    
  • Xóa nhánh trên remote repository:

    git push <tên remote> :<nhánh cần xóa>
    

8. Git Log

Lệnh git log dùng để xem lịch sữ các commit trước đó trong local và cả remote

  • Lọc xem tất cả lịch sữ commit trước đó
git log
  • Lọc xem lịch sữ commit một cách tóm gọn lại
git log --oneline
  • Lọc xem hết toàn bộ code thây đổi trong lịch sữ theo commit
git log -p 
  • Lọc commit theo từ
git log --oneline --grep="keyword ..."
  • Lọc commit theo tác giả
git log --oneline --author="tác giả"`

9. Git Pull

Lệnh git pull trong Git được sử dụng để cập nhật local repository của bạn với những thay đổi mới nhất từ remote repository.

  • Pull code về local
git pull

git pull thực chất là sự kết hợp của hai lệnh Git khác:

  1. git fetch: Lệnh này tải về tất cả những thay đổi (commits, branches, tags) từ remote repository về local repository của bạn. Tuy nhiên, git fetch không tự động merge những thay đổi này vào nhánh hiện tại của bạn.
  2. git merge: Sau khi đã fetch những thay đổi mới, git merge sẽ tiến hành hợp nhất (merge) những thay đổi đó vào nhánh hiện tại của bạn.

10. Git Fetch

Lệnh git fetch được sử dụng để tải về tất cả những thay đổi (commits, branches, tags) từ remote repository về local repository của bạn.

Điểm quan trọng: git fetch không tự động merge những thay đổi này vào nhánh hiện tại của bạn. Thay vào đó, nó chỉ tải về và lưu trữ những thay đổi đó trong local repository của bạn.

git fetch <remote> <branch>

Ví dụ:

git fetch origin main


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí