Dưới đây là một số khái niệm quan trọng trong Git:
- Repository (Kho lưu trữ): Là nơi lưu trữ mã nguồn của một dự án. Mỗi repository chứa toàn bộ lịch sử thay đổi của mã nguồn, các phiên bản khác nhau của tệp, và các nhánh.
- Commit: Là một điểm trong lịch sử của dự án, đánh dấu sự thay đổi được ghi nhận vào repository. Mỗi commit chứa một snapshot của tất cả các tệp trong dự án, thông tin về tác giả, và một thông điệp mô tả thay đổi.
- Branch (Nhánh): Là một dòng phát triển riêng biệt trong dự án. Các nhánh cho phép bạn làm việc trên các tính năng hoặc sửa lỗi mà không ảnh hưởng đến nhánh chính (thường là
main
hoặcmaster
). - Merge: Là quá trình kết hợp các thay đổi từ một nhánh khác vào nhánh hiện tại. Khi bạn hoàn thành công việc trên một nhánh tính năng, bạn sẽ merge nó vào nhánh chính.
- Rebase: Là một cách khác để kết hợp các thay đổi từ một nhánh khác, nhưng thay vì tạo một commit merge, rebase sẽ áp dụng các commit của nhánh đó lên trên commit của nhánh hiện tại. Rebase thường được sử dụng để giữ lịch sử commit sạch sẽ.
- Checkout: Là hành động chuyển đổi giữa các nhánh hoặc commit cụ thể trong repository. Khi bạn checkout một nhánh khác, bạn sẽ chuyển đổi mã nguồn sang trạng thái của nhánh đó.
- Staging Area (Khu vực tạm thời): Là nơi bạn chuẩn bị các thay đổi trước khi commit. Bạn có thể thêm hoặc xóa các tệp khỏi staging area bằng lệnh
git add
hoặcgit reset
. - Working Directory (Thư mục làm việc): Là phiên bản hiện tại của mã nguồn mà bạn đang làm việc. Bất kỳ thay đổi nào bạn thực hiện trong các tệp đều xảy ra trong working directory trước khi được đưa vào staging area và commit.
- Remote: Là phiên bản của repository được lưu trữ trên máy chủ, thường được dùng để chia sẻ với người khác. Một remote phổ biến là
origin
, thường là URL của repository trên GitHub hoặc GitLab. - Fetch: Là quá trình lấy các thay đổi từ remote repository về máy local của bạn mà không ảnh hưởng đến bất kỳ tệp nào trong working directory. Fetch chỉ cập nhật các thông tin về remote.
- Pull: Là sự kết hợp của fetch và merge. Pull lấy các thay đổi từ remote repository và tự động merge chúng vào nhánh hiện tại.
- Push: Là quá trình gửi các commit từ máy local của bạn lên remote repository, để các thay đổi của bạn có thể được chia sẻ với người khác.
- Tag: Là một điểm cụ thể trong lịch sử commit mà bạn muốn đánh dấu với một tên đặc biệt, thường được dùng để đánh dấu phiên bản phát hành (release).
- Clone: Là hành động sao chép toàn bộ repository từ remote về máy local của bạn, bao gồm tất cả các nhánh, commit, và tệp.
- Conflict (Xung đột): Xảy ra khi Git không thể tự động kết hợp các thay đổi từ hai nhánh hoặc commit vì chúng đã thay đổi cùng một phần của tệp. Xung đột cần được giải quyết thủ công.
- Blame: Là lệnh cho phép bạn xem ai đã thay đổi một dòng code cụ thể và trong commit nào.
- Fork: Là hành động sao chép một repository từ tài khoản của người khác sang tài khoản của mình trên một dịch vụ như GitHub, để bạn có thể làm việc trên đó mà không ảnh hưởng đến repository gốc.
Những khái niệm này là nền tảng cơ bản để bạn có thể làm việc hiệu quả với Git.
Xin chào,
Bài viết này sử dụng AI ChatGPT để viết sau đó được lựa chọn, biên tập lại nội dung, chỉ một phần nhỏ các bài là tôi tự viết. Nội dung thể hiện ý chí cá nhân về các vấn đề, giải pháp. Tôi lưu tại website này để học, tra cứu và chia sẻ.
Tôi là Minh, sống tại Hà Nội, kỹ sư phần mềm với hơn 20 năm kinh nghiệm. Các ngôn ngữ yêu thích của tôi là Swift, Objective-C, Java, Kotlin, .NET, HTML, JavaScript, CSS, Bootstrap, jQuery, AngularJS, Angular…
Các bạn có thể tải app của tôi trên App Store hoặc Google Play:
QuestionBank-Ôn thi vào 10: phiên bản iOS, phiên bản Android
TypingTest by QuestionBank: phiên bản iOS, phiên bản Android
Xin cảm ơn,
Minh