AI Engineering Tools

Lập trình

Thuật ngữ Git/GitHub

Tài liệu tra cứu về kho mã, branch, commit, đồng bộ, PR, xung đột và thao tác Git an toàn.

33 mục

Khái niệm cốt lõi

Kho lưu trữ

Repository

engineerdoge/math-ai-tools

Ý nghĩa

Một thư mục dự án được theo dõi bởi Git, thường được phản chiếu trên GitHub.

Cách dùng

Khi bạn yêu cầu kiểm tra một dự án, commit công việc hoặc so sánh các nhánh, kho lưu trữ là đơn vị đang được xử lý.

Ví dụ

engineerdoge/math-ai-tools

Ví dụ yêu cầu

Kiểm tra trạng thái của kho lưu trữ hiện tại.

Khái niệm cốt lõi

Cây làm việc

Working tree

git status

Ý nghĩa

Các tệp hiện đang được kiểm tra trên máy tính của bạn, bao gồm cả các chỉnh sửa chưa được lưu.

Cách dùng

Sử dụng nó để phân tách lịch sử đã cam kết khỏi các chỉnh sửa đang được thực hiện.

Ví dụ

git status

Ví dụ yêu cầu

Hiển thị những gì đã thay đổi trong cây làm việc.

Khái niệm cốt lõi

Khu vực chuẩn bị (staging area)

Staging area

git add src/components/SiteHeader.tsx

Ý nghĩa

Một tập hợp các thay đổi tạm thời sẽ được đưa vào commit tiếp theo.

Cách dùng

Nó cho phép bạn chỉ commit những tệp hoặc đoạn mã thuộc về nhau.

Lưu ý

Khu vực chuẩn bị không tự động lưu lịch sử. Lệnh commit mới là thứ ghi lại lịch sử đó.

Ví dụ

git add src/components/SiteHeader.tsx

Ví dụ yêu cầu

Chỉ đưa vào các tệp cho trang "Thuật ngữ Git".

Khái niệm cốt lõi

Commit (Lưu thay đổi)

Commit

git commit -m "Add Git terms reference"

Ý nghĩa

Một ảnh chụp nhanh đã được lưu của các thay đổi đã chọn trong lịch sử kho lưu trữ.

Cách dùng

Các commit cho phép xem xét, so sánh, triển khai hoặc hoàn tác các thay đổi sau này.

Ví dụ

git commit -m "Add Git terms reference"

Ví dụ yêu cầu

Tạo một commit với một thông điệp ngắn gọn.

Khái niệm cốt lõi

So sánh sự khác biệt

Diff

git diff

Ý nghĩa

Một chế độ xem từng dòng về những thay đổi giữa hai trạng thái tệp.

Cách dùng

So sánh sự khác biệt là cách nhanh nhất để xem chính xác những gì một thay đổi đã thực hiện trước khi xác nhận.

Ví dụ

git diff

Ví dụ yêu cầu

Đánh giá sự khác biệt (diff) cho các thay đổi không mong muốn.

Nhánh

Chi nhánh

Branch

qwen3.5

Ý nghĩa

Một dòng công việc được đặt tên có thể di chuyển độc lập với các dòng công việc khác.

Cách dùng

Các nhánh cho phép bạn phát triển một tính năng mà không cần thay đổi nhánh chính ngay lập tức.

Ví dụ

qwen3.5

Ví dụ yêu cầu

Hãy cho tôi biết tôi đang ở nhánh nào.

Nhánh

nhánh chính

main branch

chính

Ý nghĩa

Ngành nhánh mặc định thường đại diện cho phiên bản ổn định hoặc sẵn sàng cho sản xuất.

Cách dùng

So sánh nhánh đang làm việc của bạn với nhánh main để xem những gì đã thay đổi.

Ví dụ

chính

Ví dụ yêu cầu

So sánh nhánh này với nhánh main.

Nhánh

checkout

checkout

git switch qwen3.5

Ý nghĩa

Thay đổi cây làm việc sang một nhánh hoặc phiên bản khác.

Cách dùng

Sử dụng khi bạn cần kiểm tra hoặc tiếp tục công việc trên một nhánh khác.

Lưu ý

Các chỉnh sửa chưa được lưu có thể chặn việc chuyển đổi giữa các nhánh nếu chúng sẽ bị ghi đè.

Ví dụ

git switch qwen3.5

Ví dụ yêu cầu

Chuyển sang nhánh qwen3.5 sau khi kiểm tra xem có thay đổi nào chưa được lưu hay không.

Nhánh

hợp nhất

merge

git merge main

Ý nghĩa

Kết hợp các thay đổi từ một nhánh vào một nhánh khác.

Cách dùng

Sử dụng "merge" để đưa các bản cập nhật chính vào nhánh tính năng của bạn hoặc hoàn thành một tính năng vào nhánh chính.

Lưu ý

Merge can create conflicts when both branches edited the same lines differently. (Việc hợp nhất có thể tạo ra xung đột khi cả hai nhánh chỉnh sửa cùng một dòng theo cách khác nhau.)

Ví dụ

git merge main

Ví dụ yêu cầu

Giải thích điều gì sẽ xảy ra trước khi hợp nhất nhánh main vào nhánh này.

Nhánh

rebase

rebase

git rebase main

Ý nghĩa

Áp dụng lại các thay đổi (commits) từ một nhánh lên một thay đổi gốc khác.

Cách dùng

Nó có thể làm cho lịch sử trông tuyến tính trước khi hợp nhất một nhánh tính năng.

Lưu ý

Lệnh "rebase" viết lại lịch sử commit, vì vậy nó nên được sử dụng cẩn thận trên các nhánh được chia sẻ.

Ví dụ

git rebase main

Ví dụ yêu cầu

Đừng rebase ngay bây giờ. Đầu tiên, hãy giải thích rủi ro trên nhánh này.

Đồng bộ

clone

clone

git clone https://github.com/user/project.git

Ý nghĩa

Tạo một bản sao cục bộ của một kho lưu trữ từ xa.

Cách dùng

Nó thường là bước đầu tiên khi bắt đầu làm việc trên một dự án GitHub hiện có.

Ví dụ

git clone https://github.com/user/project.git

Ví dụ yêu cầu

Sao chép kho lưu trữ này và hiển thị các nhánh có sẵn.

Đồng bộ

Từ xa.

remote

origin git@github.com:user/project.git

Ý nghĩa

Một kết nối được đặt tên từ kho lưu trữ cục bộ đến một kho lưu trữ được lưu trữ ở một vị trí khác.

Cách dùng

Các cài đặt từ xa quyết định nơi kéo (pull) và đẩy (push) giao tiếp.

Ví dụ

origin git@github.com:user/project.git

Ví dụ yêu cầu

Hiển thị các remote đã được cấu hình.

Đồng bộ

fetch

fetch

git fetch origin

Ý nghĩa

Tải thông tin nhánh từ xa mà không thay đổi các tệp làm việc của bạn.

Cách dùng

Sử dụng `fetch` trước khi so sánh nhánh của bạn với trạng thái từ xa mới nhất.

Ví dụ

git fetch origin

Ví dụ yêu cầu

Lấy dữ liệu từ nguồn gốc, sau đó so sánh nhánh này với nhánh chính.

Đồng bộ

pull

pull

git pull origin main

Ý nghĩa

Lấy các thay đổi từ xa và áp dụng chúng vào nhánh hiện tại.

Cách dùng

Sử dụng nó để cập nhật nhánh cục bộ của bạn với các thay đổi đã được đẩy đến một vị trí khác.

Lưu ý

Việc kéo (pull) có thể thay đổi nhánh làm việc của bạn và có thể gây ra xung đột.

Ví dụ

git pull origin main

Ví dụ yêu cầu

Trước khi tải xuống, hãy kiểm tra xem tôi có bất kỳ thay đổi cục bộ nào chưa được commit hay không.

Đồng bộ

push

push

git push origin qwen3.5

Ý nghĩa

Tải lên các thay đổi cục bộ lên kho lưu trữ từ xa.

Cách dùng

Lệnh "push" giúp các thay đổi cục bộ của bạn có sẵn trên GitHub hoặc một máy chủ từ xa khác.

Lưu ý

Lệnh "push" chỉ tải lên các thay đổi đã được commit, không phải các thay đổi chưa được commit trong cây làm việc.

Ví dụ

git push origin qwen3.5

Ví dụ yêu cầu

Đẩy (push) nhánh hiện tại sau khi xác nhận rằng quá trình xây dựng đã thành công.

Đồng bộ

nguồn gốc

origin

git push origin qwen3.5

Ý nghĩa

Tên mặc định thông thường cho kho lưu trữ từ xa mà bạn đã sao chép.

Cách dùng

Hầu hết các ví dụ về lệnh push, pull và fetch sử dụng origin làm tên từ xa.

Ví dụ

git push origin qwen3.5

Ví dụ yêu cầu

Kiểm tra xem nguồn có trỏ đến kho lưu trữ GitHub mong muốn hay không.

Đánh giá

Yêu cầu kéo (Pull Request).

Pull Request

Mở một PR từ qwen3.5 vào nhánh chính.

Ý nghĩa

Một trang đánh giá trên GitHub để thảo luận và hợp nhất các thay đổi của nhánh.

Cách dùng

Sử dụng yêu cầu kéo (PR) để xem xét các tệp đã thay đổi, chạy kiểm tra, thảo luận bình luận và hợp nhất một cách an toàn.

Ví dụ

Mở một PR từ qwen3.5 vào nhánh chính.

Ví dụ yêu cầu

Tóm tắt những gì nên được đưa vào phần mô tả của PR.

Đánh giá

Đánh giá

Review

Đánh giá các thay đổi được yêu cầu.

Ý nghĩa

Kiểm tra các thay đổi mã để tìm lỗi, lỗi, khả năng đọc và các bài kiểm tra bị thiếu.

Cách dùng

Đánh giá giúp phát hiện các vấn đề trước khi hợp nhất một nhánh vào mã nguồn chung.

Ví dụ

Đánh giá các thay đổi được yêu cầu.

Ví dụ yêu cầu

Đánh giá nhánh này để tìm lỗi và các bài kiểm tra bị thiếu.

Xung đột

Merge conflict (xung đột hợp nhất)

Merge conflict

CONFLICT (content): Xung đột hợp nhất trong src/app/page.tsx

Ý nghĩa

Một tình huống mà Git không thể tự động kết hợp các thay đổi từ các nhánh khác nhau.

Cách dùng

Bạn phải chọn nội dung cuối cùng chính xác trước khi quá trình hợp nhất có thể tiếp tục.

Lưu ý

Không chấp nhận một cách mù quáng một phía. Kiểm tra hành vi dự kiến trước.

Ví dụ

CONFLICT (content): Xung đột hợp nhất trong src/app/page.tsx

Ví dụ yêu cầu

Giải thích xung đột và đề xuất giải pháp an toàn nhất.

Xung đột

Ký hiệu xung đột

Conflict marker

<<<<<<< HEAD

Ý nghĩa

Các dấu văn bản mà Git chèn vào một tệp để hiển thị các phiên bản xung đột.

Cách dùng

Các dấu hiệu cho biết phần nào đến từ nhánh hiện tại của bạn và phần nào đến từ nhánh nhận.

Lưu ý

Các ký hiệu xung đột không nên còn trong mã đã được commit.

Ví dụ

<<<<<<< HEAD

Ví dụ yêu cầu

Tìm bất kỳ dấu hiệu xung đột còn lại nào.

Xung đột

Tệp chưa được theo dõi

Untracked file

?? src/lib/git-github.ts

Ý nghĩa

Một tệp tồn tại trong thư mục nhưng chưa được thêm vào theo dõi Git.

Cách dùng

Các trang và thành phần mới thường xuất hiện như chưa được theo dõi cho đến khi được đưa vào giai đoạn thử nghiệm.

Ví dụ

?? src/lib/git-github.ts

Ví dụ yêu cầu

Liệt kê các tệp chưa được theo dõi và cho tôi biết những tệp nào thuộc về tính năng này.

Xung đột

Tệp đã sửa đổi

Modified file

M src/components/SiteHeader.tsx

Ý nghĩa

Một tệp được theo dõi mà nội dung của nó khác với phiên bản cuối cùng đã được commit.

Cách dùng

Nó giúp bạn xem những tệp hiện có nào đã bị thay đổi bởi công việc hiện tại.

Ví dụ

M src/components/SiteHeader.tsx

Ví dụ yêu cầu

Hiển thị các tệp đã được sửa đổi cho tác vụ này.

An toàn

lưu trữ tạm thời

stash

git stash push -m "before branch switch"

Ý nghĩa

Tạm thời lưu các thay đổi chưa được commit để cây làm việc có thể trở về trạng thái sạch.

Cách dùng

Sử dụng "stash" trước khi chuyển đổi các nhánh khi bạn chưa sẵn sàng để commit.

Lưu ý

Các thay đổi đã lưu trữ có thể bị quên. Luôn đặt tên rõ ràng và áp dụng lại một cách có chủ ý.

Ví dụ

git stash push -m "before branch switch"

Ví dụ yêu cầu

Lưu trữ các thay đổi hiện tại của tôi với một thông báo rõ ràng trước khi chuyển đổi giữa các nhánh.

An toàn

Đặt lại.

reset

git reset --soft HEAD~1

Ý nghĩa

Quay lại nhánh hoặc trạng thái đang chờ xử lý về một commit hoặc trạng thái khác.

Cách dùng

Việc đặt lại mềm hoặc kết hợp có thể điều chỉnh một commit cục bộ trước khi nó được chia sẻ.

Lưu ý

Khởi động lại cứng có thể xóa dữ liệu. Hãy hỏi để được giải thích trước khi sử dụng.

Ví dụ

git reset --soft HEAD~1

Ví dụ yêu cầu

Giải thích cách an toàn nhất để hoàn tác lần commit cục bộ cuối cùng mà không làm mất dữ liệu.

An toàn

Hoàn tác.

revert

git revert abc1234

Ý nghĩa

Tạo một commit mới để hủy một commit trước đó.

Cách dùng

"Revert" thường an toàn hơn so với việc viết lại lịch sử sau khi các thay đổi đã được đẩy lên.

Ví dụ

git revert abc1234

Ví dụ yêu cầu

Hoàn tác thay đổi (commit) gây ra sự cố mà không cần viết lại lịch sử chung.

An toàn

ép buộc

force push

git push --force-with-lease origin qwen3.5

Ý nghĩa

Ghi đè một nhánh từ xa bằng lịch sử nhánh cục bộ của bạn.

Cách dùng

Nó đôi khi được sử dụng sau khi ghi đè lịch sử cục bộ trên một nhánh tính năng riêng tư.

Lưu ý

Lệnh `force push` có thể xóa các thay đổi từ xa của người khác. Hãy ưu tiên sử dụng `force-with-lease` và xác nhận trước.

Ví dụ

git push --force-with-lease origin qwen3.5

Ví dụ yêu cầu

Không sử dụng lệnh push cưỡng bức. Giải thích xem việc sử dụng lệnh force-with-lease có cần thiết hay không.

An toàn

.gitignore

.gitignore

.next/

Ý nghĩa

Một tệp cho biết Git nên theo dõi những tệp hoặc thư mục nào.

Cách dùng

Sử dụng nó cho đầu ra của quá trình xây dựng, các thư viện phụ thuộc, các tệp môi trường cục bộ và các tệp tạm thời.

Ví dụ

.next/

Ví dụ yêu cầu

Kiểm tra xem đầu ra của quá trình xây dựng có được bỏ qua đúng cách hay không.

Lệnh

git status

git status

git status --short

Ý nghĩa

Một lệnh hiển thị nhánh, các thay đổi đã được chuẩn bị, các tệp đã sửa đổi và các tệp chưa được theo dõi.

Cách dùng

Chạy nó trước khi chỉnh sửa, commit, pull hoặc chuyển đổi nhánh.

Ví dụ

git status --short

Ví dụ yêu cầu

Chạy `git status` và tóm tắt chỉ các thay đổi quan trọng.

Lệnh

git log

git log

git log --oneline -5

Ý nghĩa

Một lệnh để xem lịch sử cam kết.

Cách dùng

Sử dụng để tìm các commit gần đây, so sánh công việc hoặc xác định một commit để hoàn tác.

Ví dụ

git log --oneline -5

Ví dụ yêu cầu

Hiển thị năm commit gần đây nhất ở định dạng ngắn gọn.

Lệnh

git add

git add

git add src/lib/git-github.ts

Ý nghĩa

Một lệnh chuẩn bị các thay đổi cho lần cam kết tiếp theo.

Cách dùng

Sử dụng các đường dẫn rõ ràng khi bạn muốn tạo một commit tập trung.

Ví dụ

git add src/lib/git-github.ts

Ví dụ yêu cầu

Chỉ đưa vào các tệp được tạo cho trang này.

Lệnh

git commit

git commit

git commit -m "Add Git terms reference"

Ý nghĩa

Một lệnh ghi lại các thay đổi đã được chuẩn bị vào lịch sử kho lưu trữ.

Cách dùng

Sử dụng một thông báo cho biết những gì đã thay đổi và tại sao nó quan trọng.

Ví dụ

git commit -m "Add Git terms reference"

Ví dụ yêu cầu

Lưu các thay đổi đã được chuẩn bị với một thông báo rõ ràng.

Lệnh

git pull

git pull

git pull --ff-only

Ý nghĩa

Một lệnh cập nhật nhánh hiện tại từ một nhánh từ xa.

Cách dùng

Tùy chọn `--ff-only` tránh tạo một commit hợp nhất không mong muốn.

Ví dụ

git pull --ff-only

Ví dụ yêu cầu

Chỉ kéo (pull) với tùy chọn "ff-only" nếu nó an toàn.

Lệnh

git push

git push

git push origin HEAD

Ý nghĩa

Một lệnh tải các cam kết cục bộ lên một nhánh từ xa.

Cách dùng

Sử dụng nó sau khi các kiểm tra vượt qua và các commit đã sẵn sàng để chia sẻ.

Ví dụ

git push origin HEAD

Ví dụ yêu cầu

Đẩy (push) nhánh này sau khi xác nhận rằng không có lỗi kiểm tra hoặc xây dựng nào.