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ặcmaster
). - 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ặcmaster
):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:
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.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