- vừa được xem lúc

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

0 0 9

Người đăng: Phúc Lâm

Theo Viblo Asia

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.

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: 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ự:

  • : Unmodified (không thay đổi)
  • 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.

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.

  • 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.

  • Đẩ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

10. Git Merge

Lệnh git merge được sử dụng để hợp nhất (merge) những thay đổi từ một nhánh khác (thường là nhánh bạn vừa fetch từ remote repository) vào nhánh hiện tại của bạn.

git merge <tên nhánh>

11. Git Checkout

Là một lệnh truyền thống được sữ dụng nhiều

  • Chuyển đổi các nhánh
git checkout <tên nhánh>
  • Tạo nhánh mới và chuyển sang nhánh đó
git checkout -b <tên nhánh mới>
  • Khôi phục toàn bộ working directory về trạng thái từ commit trước đó (có thể gây mất dữ liệu, nên cẩn thận)
git checkout <commit>

Ưu điểm:

  • Linh hoạt, cung cấp nhiều chức năng trong một lệnh. Nhược điểm:

  • Dễ gây nhầm lẫn do có nhiều chức năng.

  • Có thể gây mất dữ liệu nếu sử dụng sai cách.

12. Git Switch

git switch là lệnh mới được giới thiệu trong Git phiên bản 2.23, tập trung vào chức năng chuyển đổi giữa các branch một cách rõ ràng và an toàn hơn.

  • Chuyển đổi các nhánh
git switch <tên nhánh>
  • Tạo nhánh mới và chuyển sang nhánh đó
git switch -b <tên nhánh mới>

Ưu điểm:

  • Dễ hiểu và sử dụng hơn git checkout khi chuyển đổi branch.
  • An toàn hơn, hạn chế rủi ro mất dữ liệu.

Nhược điểm:

  • Ít chức năng hơn git checkout.

BẢNG SO SÁNH NHỎ GIỮA GITCHECKOUTGITSWITCH

Tính năng git checkout git switch
Chuyển đổi nhánh
Tạo nhánh mới Có (git checkout -b <nhánh>) Có (git switch -c <nhánh>)
Khôi phục file từ staging area Có (git checkout -- <tệp>) Không
Khôi phục file từ commit Có (git checkout <commit> -- <tệp>) Không
Khôi phục thay đổi từ stash Có (git checkout -p <stash>) Không
Rõ ràng về mục đích Thấp (nhiều chức năng) Cao (chỉ tập trung vào chuyển đổi nhánh)
Độ an toàn Thấp (có thể gây mất dữ liệu nếu dùng sai) Cao (ít rủi ro hơn)

Bình luận

Bài viết tương tự

- vừa được xem lúc

Những lệnh Git cơ bản cần nhớ

1. Cơ bản vê Git.

0 0 39

- vừa được xem lúc

5 Chiêu thức luyện công cùng Git

Khởi động. Để chuẩn bị tốt cho các chiêu thức sắp được trình bày, chúng ta cùng khởi động, ôn luyện một chút nhé.

0 0 47

- vừa được xem lúc

Một số trường hợp khi sử dụng git

Giới thiệu. Ở bài viết trước, mình đã giới thiệu các lệnh cơ bản thường dùng trong git.

0 0 31

- vừa được xem lúc

Git và những điều cơ bản bạn cần biết?

Những điều cơ bản về Git. Làm thế nào để xoá một branch ở phía local, làm thế nào để xoá một branch remote.

0 0 33

- vừa được xem lúc

[GIT] Làm việc với Git như một Senior

Khai niệm. . Git được hiểu đơn giản là một Version quản lý source-code. Hiện tại git được sử dụng rộng rãi trong quy trình phát triển phần mềm.

0 0 33

- vừa được xem lúc

Một số lưu ý, kinh nghiệm khi sử dụng Git

Chỉ là một chút kinh nghiệm cá nhân tự note để xem lại nên đa phần mình viết để gợi nhớ lại cho bản thân, để có thể đọc lại khi cần . .

0 0 34