Công cụ quản lý phiên bản Git đã được cài đặt trong môi trường phát triển của bạn. Nếu bạn đang làm việc trên Ubuntu, hãy tham khảo bài hướng dẫn “Cài đặt Git trên Ubuntu 20.04”.
Bước 1 – Tạo Workspace
Nếu bạn đang chuyển đổi một dự án hiện có sang kho Git, bạn có thể bỏ qua bước này và chuyển sang bước 2.
Nếu không, hãy bắt đầu bằng cách tạo một thư mục làm việc mới:
mkdir testing
Tiếp theo, di chuyển vào thư mục làm việc đó:
cd testing
Bên trong thư mục đó, bạn cần tạo một tập tin mẫu để minh họa chức năng của Git. Bạn có thể tạo một tập tin rỗng bằng lệnh:
touch file
Sau khi đã đưa toàn bộ các tập tin dự án vào workspace, bạn cần bắt đầu theo dõi các tập tin đó bằng Git. Bước tiếp theo sẽ giải thích quá trình này.
Bước 2 – Chuyển đổi dự án hiện có thành môi trường Workspace
Bạn có thể khởi tạo một kho Git trong thư mục hiện có bằng lệnh:
git init
Output Initialized empty Git repository in /home/sammy/testing/.git/
Tiếp theo, bạn cần sử dụng lệnh git add
để cho phép Git theo dõi các tập tin hiện có. Phần lớn, Git sẽ không theo dõi các tập tin mới tự động, vì vậy lệnh git add
là cần thiết khi bạn thêm nội dung mới vào kho mà trước đó Git chưa theo dõi.
git add .
Bây giờ, bạn đã có một kho Git được theo dõi chủ động. Từ đây về sau, mỗi bước trong bài hướng dẫn này sẽ phù hợp với quy trình làm việc thông thường khi cập nhật và commit vào kho Git hiện có.
Bước 3 – Tạo Commit Message
Mỗi lần bạn commit các thay đổi vào kho Git, bạn sẽ cần cung cấp một commit message. Commit message tóm tắt các thay đổi mà bạn đã thực hiện. Commit message không thể để trống và có thể có độ dài tùy ý – một số người thích sử dụng commit message dài, chi tiết, mặc dù một số nền tảng như GitHub lại ưu tiên những commit message ngắn gọn dễ đọc hơn.
Nếu bạn đang nhập một dự án hiện có vào Git lần đầu tiên, thông thường bạn chỉ sử dụng thông điệp “Initial Commit”. Bạn có thể tạo commit bằng lệnh:
git commit -m "Initial Commit" -a
Output [master (root-commit) 1b830f8] initial commit 0 files changed create mode 100644 file
Trong lệnh trên có hai tham số quan trọng. Tham số -m cho biết commit message (trong trường hợp này là “Initial Commit”) sẽ theo sau. Tham số -a cho biết commit của bạn sẽ bao gồm tất cả các tập tin đã được thêm hoặc sửa đổi. Git không coi đây là hành vi mặc định, nhưng về sau, bạn có thể đặt mặc định việc bao gồm tất cả các tập tin đã cập nhật trong commit của mình.
Nếu bạn chỉ muốn commit một tập tin hoặc một vài tập tin, bạn có thể sử dụng:
git commit -m "Initial Commit" file1 file2
Trong bước tiếp theo, bạn sẽ đẩy commit này lên kho từ xa.
Bước 4 – Đẩy các thay đổi lên máy chủ từ xa
Cho đến thời điểm này, bạn đã làm việc hoàn toàn trong môi trường cục bộ của mình. Thật vậy, bạn vẫn có thể sử dụng Git theo cách này để theo dõi và hoàn tác các thay đổi của riêng bạn. Tuy nhiên, để tận dụng các tính năng hợp tác phổ biến trên các nền tảng như GitHub, bạn sẽ cần đẩy các thay đổi lên máy chủ từ xa.
Bước đầu tiên để có thể đẩy mã lên máy chủ từ xa là cung cấp URL nơi kho lưu trữ tồn tại và đặt cho nó một tên cục bộ. Để cấu hình một kho từ xa và xem danh sách các remote
(bạn có thể có nhiều remote), hãy sử dụng lệnh:
git remote add origin ssh://git@git.domain.tld/repository.git git remote -v
Output origin ssh://git@git.domain.tld/repository.git (fetch) origin ssh://git@git.domain.tld/repository.git (push)
Lệnh đầu tiên thêm một remote có tên “origin” và đặt URL là ssh://git@git.domain.tld/repository.git
.
Bạn có thể đặt tên remote tùy ý, nhưng “origin
” là quy ước phổ biến cho bản sao upstream chính thức của mã nguồn. URL cần trỏ đến một kho từ xa thực sự. Ví dụ, nếu bạn muốn đẩy mã lên GitHub, bạn sẽ cần sử dụng URL kho được cung cấp bởi GitHub.
Sau khi cấu hình remote, bạn có thể đẩy mã lên máy chủ từ xa bằng lệnh:
git push origin main
Lưu ý: Trước năm 2021, nhánh đầu tiên được tạo trong kho Git mặc định có tên là
master
. Gần đây, có nỗ lực chuyển đổi tên nhánh mặc định thànhmain
nhằm sử dụng thuật ngữ trung tính hơn. Mặc dù nhiều nhà cung cấp dịch vụ lưu trữ Git như GitHub đã thay đổi, nhưng phiên bản Git cục bộ của bạn có thể vẫn mặc định làmaster
. Nếu bạn nhận được thông báo lỗi về nhánhmain
không tồn tại, hãy thử đẩy nhánhmaster
thay thế.
Output Counting objects: 4, done. Delta compression using up to 2 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (3/3), 266 bytes, done. Total 3 (delta 1), reused 1 (delta 0) To ssh://git@git.domain.tld/repository.git 0e78fdf..e6a8ddc main -> main
Trong tương lai, khi bạn có nhiều commit cần đẩy, bạn có thể chỉ cần gõ git push
và Git sẽ tự động sử dụng tên nhánh và remote từ lần đẩy cuối cùng.
Kết Luận
Bạn đã thành công trong việc thiết lập một kho Git, commit các thay đổi và đẩy mã nguồn lên một kho lưu trữ từ xa như GitHub. Đây là bước đầu quan trọng để quản lý phiên bản mã nguồn một cách hiệu quả, giúp theo dõi thay đổi và phối hợp làm việc dễ dàng hơn.
Dù các nền tảng như GitHub cung cấp giao diện trực quan để quản lý mã nguồn, việc sử dụng Git qua dòng lệnh vẫn là kỹ năng thiết yếu, đặc biệt đối với các dự án phức tạp và làm việc nhóm. Khi bạn tiếp tục phát triển dự án hoặc tham gia vào các kho mã có nhiều contributor, bạn sẽ cần tìm hiểu thêm về các lệnh Git nâng cao như quản lý nhánh, xử lý merge conflicts và tạo pull request. Với nền tảng đã có, bạn đã sẵn sàng mở rộng kiến thức và áp dụng Git vào quy trình phát triển phần mềm chuyên nghiệp.
Tiếp theo, bạn có thể tìm hiểu thêm về cách sử dụng các nhánh Git, hoặc cách tạo pull request trên GitHub. Bạn cũng có thể tham khảo tài liệu tham khảo của Git.