9.0 Một chút lịch sử
Kể từ khi được tạo ra, công cụ Git DVCS đã có nhánh mặc định gọi là master
. Mỗi kho lưu trữ Git đều có nhánh master
trừ khi nhà phát triển thực hiện các bước rõ ràng để xóa nó, điều này hiếm khi xảy ra vì nhánh master
đóng vai trò quan trọng trong thế giới phát triển phần mềm.
Việc sử dụng các thuật ngữ master
và slave
(chủ và nô lệ) trong ngành công nghiệp máy tính đã thu hút sự chú ý của mọi người vào mùa hè năm 2020 trong bối cảnh các cuộc biểu tình và bất ổn xã hội ngày càng tăng. Trong quá trình thảo luận công khai, đã xuất hiện một số lựa chọn thay thế cho master
, trong đó có default
và primary
. Tuy nhiên, thuật ngữ phổ biến nhất đã trở thành main
.
GitHub đã đưa ra biện pháp và từ bỏ thuật ngữ master
khi khởi tạo kho lưu trữ Git. Chuyển đổi GitHub từ master
sang main
có thể thực hiện qua cài đặt tài khoản tại Repositories hoặc lệnh:
$ git branch -m master main
Trong các bài giảng tiếp theo, thuật ngữ master
vẫn được sử dụng. Xem thêm về chuyển đổi này qua các đường dẫn sau:
9.1 Git là gì và tại sao cần nó
Git là một hệ thống quản lý phiên bản mạnh mẽ, được sử dụng để theo dõi các thay đổi trong mã nguồn trong quá trình phát triển phần mềm. Nó cho phép các nhà phát triển lưu trữ nhiều phiên bản của tệp và phối hợp làm việc của nhiều người trên cùng một dự án.
Các khái niệm chính trong Git:
Kho lưu trữ
Kho lưu trữ (hay "repo") là nơi lưu trữ toàn bộ lịch sử dự án, bao gồm tất cả các thay đổi và phiên bản của tệp. Trong Git, kho lưu trữ bao gồm thư mục làm việc, chỉ mục (hoặc giai đoạn) và cơ sở dữ liệu đối tượng.
Commit
Commit (commit)
là trạng thái được lưu của dự án. Mỗi commit trong
Git chứa thông tin về thay đổi nào đã được thực hiện trong
dự án, ai làm và khi nào. Commit tạo thành lịch sử dự án và cho phép
quay lại bất kỳ phiên bản nào trước đó.
Nhánh
Nhánh (branch)
là một dòng phát triển độc lập. Mặc định, Git
tạo nhánh main (trước đây là master)
. Bạn có thể tạo nhánh mới
để phát triển tính năng mới hoặc sửa lỗi, sau đó hợp nhất chúng
trở lại nhánh chính.
Merge và rebase
Merge (merge)
và rebase (rebase)
là hai cách để tích hợp
thay đổi từ một nhánh vào nhánh khác. Merge kết hợp lịch sử của hai
nhánh, tạo commit mới, còn rebase thì chuyển commit từ một
nhánh lên đỉnh nhánh khác, thay đổi lịch sử commit.
9.2 Các lệnh chính của Git
Dưới đây là bảng với các lệnh chính của Git để quản lý phiên bản:
Lệnh | Mô tả |
---|---|
git init |
Khởi tạo một kho lưu trữ Git mới trong thư mục hiện tại. |
git clone |
Sao chép kho lưu trữ từ URL vào thư mục mới. |
git add |
Thêm tệp vào chỉ mục cho commit tiếp theo. |
git commit |
Xác nhận thay đổi đã chuẩn bị trong kho lưu trữ. |
git push |
Gửi các thay đổi từ kho lưu trữ cục bộ lên kho lưu trữ từ xa. |
git pull |
Cập nhật nhánh hiện tại với phiên bản mới nhất từ kho lưu trữ từ xa. |
git branch |
Hiển thị, tạo hoặc xóa nhánh. |
git merge |
Hợp nhất thay đổi của nhánh chỉ định vào nhánh hiện tại. |
git rebase |
Di chuyển thay đổi lên một cơ sở mới (thường là nhánh khác). |
Những lệnh này là công cụ chính để làm việc với Git, cho phép quản lý thay đổi mã nguồn, nhánh, và hợp nhất trong dự án mọi kích thước. Chúng tôi sẽ đi chi tiết hơn về chúng trong các bài giảng tiếp theo.
9.3 Ba nơi lưu trữ mã nguồn
Khi bạn sử dụng hệ thống kiểm soát phiên bản cho mã nguồn của mình, mã nguồn của bạn, nói chung, sẽ được lưu trữ ở ba nơi:
1. Kho lưu trữ từ xa:
Đây là nơi lưu trữ mã nguồn tập trung, thường được đặt trên các dịch vụ như GitHub, GitLab hoặc Bitbucket. Chúng đảm bảo lưu trữ mã nguồn tập trung và là cơ sở cho công việc hợp tác.
Các kho lưu trữ từ xa cho phép các nhà phát triển chia sẻ thay đổi của họ, đồng bộ hóa công việc và duy trì lịch sử thay đổi của dự án. Kho lưu trữ từ xa cũng là điểm tích hợp cho các quy trình tự động hóa như xây dựng, kiểm thử và triển khai ứng dụng.
2. Kho lưu trữ cục bộ:
Kho lưu trữ cục bộ là bản sao mã nguồn cá nhân của bạn, lưu trữ trên máy tính của bạn. Trong kho lưu trữ này, bạn có thể thực hiện mọi thao tác với Git (commit, nhánh, merge) mà không cần kết nối internet.
Các kho lưu trữ cục bộ cho phép các nhà phát triển làm việc độc lập với đồng nghiệp, thử nghiệm, xây dựng các tính năng mới hoặc sửa lỗi trước khi thay đổi được hợp nhất (merge) và gửi lên kho lưu trữ từ xa.
3. Thư mục làm việc:
Thư mục làm việc trên máy tính của bạn chứa các tệp dự án hiện tại mà bạn đang làm việc. Đây là nơi bạn có thể xem và thay đổi các tệp, thêm chức năng mới hoặc sửa lỗi.
Sau khi thực hiện thay đổi, bạn có thể thêm chúng vào chỉ mục (staging area), sau đó commit vào kho lưu trữ cục bộ. Thư mục làm việc được liên kết với nhánh hiện tại trong kho lưu trữ của bạn và việc thay đổi nhánh sẽ thay đổi nội dung của thư mục làm việc.
Những thành phần này hợp lại để cung cấp một cơ sở hạ tầng mạnh mẽ để quản lý mã nguồn, cho phép các nhà phát triển quản lý lịch sử dự án, cộng tác và chia sẻ trách nhiệm với mã.
9.4 GitHub - Kho lưu trữ miễn phí phổ biến nhất
GitHub là nền tảng web hàng đầu để lưu trữ mã nguồn, sử dụng hệ thống kiểm soát phiên bản Git. Được thành lập vào năm 2008, nó nhanh chóng trở thành một trong những công cụ quan trọng cho các nhà phát triển trên toàn thế giới.
GitHub cho phép người dùng tạo các kho lưu trữ để quản lý dự án, kiểm soát và theo dõi các thay đổi trong mã nguồn, hợp tác với các nhà phát triển khác và phát triển mở hoặc riêng tư. Nó cung cấp các chức năng như forks, nhánh, pull requests và merge, giúp các nhà phát triển dễ dàng hợp tác trong các dự án.
GitHub cũng bao gồm chức năng theo dõi vấn đề, yêu cầu tính năng, quản lý nhiệm vụ và wiki cho mỗi dự án. Nền tảng này tích hợp với nhiều công cụ và dịch vụ, cung cấp năng lực lớn cho việc tự động hóa phát triển, kiểm thử và triển khai ứng dụng.
GitHub hỗ trợ một cộng đồng phát triển rộng lớn, nơi các thực hành tốt nhất về lập trình, quản lý dự án và nhiều hơn nữa được thảo luận tích cực. Điều này không chỉ làm cho nó trở thành công cụ quản lý dự án mà còn là trung tâm cộng đồng, nơi các nhà phát triển có thể chia sẻ kiến thức và kinh nghiệm.
9.5 Đăng ký trên GitHub
Bước 1. Truy cập https://github.com
Bước 2. Đăng ký…
Bước 3. Nhấn vào nút "New" để tạo kho lưu trữ mới.
Bước 4. Đặt tên cho kho lưu trữ và cấu hình các tham số của nó.
Bước 5. Thêm vào dự án tệp README – chúng ta sẽ cần nó trong tương lai.
Bước 6. Nhấn "Create repository".
GO TO FULL VERSION