Lời mở đầu:
Trong quá trình làm việc chuyên nghiệp, đồ án sẽ không chỉ có một người phát triển làm việc trên một kho lưu trữ (repo) ở máy cá nhân. Thay vào đó, một nhóm sẽ cùng sử dụng một kho lưu trữ từ xa sử dụng các dịch vụ như GitHub. Do đó, việc nắm bắt cách đẩy (push) mã lên GitHub là một phần quan trọng của quy trình làm việc của bạn.
Bài viết này sẽ hướng dẫn cách đẩy mã lên GitHub bằng dòng lệnh (command line). Ngoài ra, chúng ta cũng sẽ xem xét các ứng dụng chuyên dụng giúp quá trình này trở nên mượt mà hơn. Hãy cùng tìm hiểu cách sử dụng GitHub cho dự án của bạn.
Làm thế nào một Lập trình viên sẽ sử dụng GitHub
GitHub là một công cụ quan trọng đối với các lập trình viên và nhà phát triển trên toàn thế giới vì nhiều lý do. Nó cho phép bạn lưu trữ mã của mình trong một vị trí tập trung, giúp dễ dàng truy cập và tạo sự hợp tác tốt hơn với các nhà phát triển khác.
Logo GitHub
Bạn cũng có thể theo dõi những thay đổi được thực hiện trên mã của mình và quay lại các phiên bản trước nếu cần thiết. Ngoài ra, GitHub cung cấp các công cụ để giúp quản lý vấn đề và lỗi, từ đó giúp duy trì mã nguồn của bạn dễ dàng hơn.
Một trong những lý do quan trọng để sử dụng GitHub như một hệ thống kiểm soát phiên bản từ xa (VCS) của bạn là việc phát triển một môi trường hợp tác. Nó cho phép bạn chia sẻ mã, theo dõi các thay đổi và hợp tác trong giải quyết các vấn đề mà không cần quá nhiều rắc rối. Điều này có thể làm tăng tính hiệu quả và cũng có thể dẫn đến chất lượng mã tốt hơn.
GitHub cũng cung cấp cho bạn một cách dễ dàng để quản lý nhiều phiên bản của một dự án mã nguồn, theo dõi các thay đổi và quay trở lại các phiên bản trước nếu bạn cần. Những dự án lớn và các nỗ lực hợp tác mã nguồn mở sẽ là hai cách mà GitHub cho thấy giá trị của nó.
Ngay cả các trường hợp sử dụng đơn giản có thể là lý tưởng. Ví dụ, bạn có thể lưu trữ mã cho dự án phát triển web của bạn và cập nhật từ xa khi bạn thực hiện các thay đổi. Ngoài ra, các dự án tích hợp liên tục / triển khai liên tục (CI/CD) sẽ được hưởng lợi từ việc tự động hóa thông qua GitHub Actions trong quá trình xây dựng.
Nhìn chung, GitHub - và các dịch vụ kiểm soát phiên bản từ xa khác như GitLab - cung cấp một nền tảng cho hợp tác, kiểm soát phiên bản và các quy trình phát triển khác. Nó có thể giúp tối ưu hóa quá trình phát triển và cải thiện chất lượng mã. Do đó, bạn sẽ muốn tìm hiểu cách đẩy mã lên GitHub, vì kiến thức này sẽ mang lại lợi ích cho bạn gần như mỗi ngày.
Cách đẩy mã lên GitHub từ Dòng lệnh (Command Line)
Phần còn lại của bài viết này sẽ hướng dẫn cách đẩy mã lên GitHub. Đây là một quá trình dễ hiểu và thực hiện.
Tuy nhiên, bạn cần đảm bảo rằng bạn đã thiết lập dự án của mình trước, nếu không, bạn sẽ gặp phải lỗi. Trong phần đầu tiên, chúng tôi sẽ xem xét các công cụ và kỹ năng bạn cần, sau đó xem chi tiết quá trình.
Những gì bạn cần để đẩy mã lên GitHub
Quan trọng nhất là đảm bảo bạn thiết lập dự án của mình để hỗ trợ việc sử dụng kho lưu trữ từ xa và tích hợp việc đẩy vào quy trình làm việc của bạn. Vì vậy, đầu tiên và quan trọng nhất, bạn cần một kho lưu trữ Git - một 'repo' để lưu trữ mã của bạn. Hãy xem nó như một thư mục chứa các tệp liên quan đến dự án của bạn.
Toàn bộ quá trình kiểm soát phiên bản bắt đầu từ một môi trường local trên máy tính của bạn. Chúng tôi có các bước chính xác để thực hiện điều này sau đây, nhưng bạn có thể đã có kiến thức này (hoặc biết nơi để truy cập nó).
Bạn cũng cần một tài khoản GitHub. Trên thực tế, bạn cũng có thể sử dụng một dịch vụ kiểm soát phiên bản từ xa trực tuyến khác, chẳng hạn như GitLab, BitBucket, Buddy và nhiều hơn nữa. Hướng dẫn mà chúng tôi cung cấp ở đây sẽ chuyển đổi, phần lớn từ GitHub sang các nền tảng khác. Tuy nhiên, so sánh các dịch vụ này là nằm ngoài phạm vi của bài viết.
Để đẩy mã của bạn lên GitHub, bạn có thể sử dụng cả dòng lệnh và giao diện người dùng đồ họa (GUI). Hầu hết nội dung chính của bài viết sẽ xoay quanh quy trình làm việc dòng lệnh, nhưng cũng có một phần về việc sử dụng GUI, vì một số GUI được ưa chuộng. Chúng tôi cũng lưu ý rằng mỗi GUI có thể có quy trình khác nhau để đẩy mã lên GitHub, điều này đồng nghĩa với việc bạn cần sử dụng một ứng dụng cụ thể để tận dụng hết tính năng của nó.
Cuối cùng, đảm bảo bạn có quyền truy cập đúng vào kho lưu trữ của bạn. Tài liệu của GitHub về chủ đề này rất toàn diện và bạn nên tìm cách sử dụng mã thông báo truy cập HTTPS hoặc truy cập Secure Shell (SSH). Nếu không có điều này, bạn sẽ không thể làm bất kỳ công việc nào!
1. Tạo kho lưu trữ GitHub
Bước đầu tiên là tạo một kho lưu trữ trực tuyến mới trong GitHub. Dù bạn có thể làm điều này từ dòng lệnh, thì thực hiện nó qua trình duyệt web cũng không khó khăn.
Khi bạn đăng nhập hoặc đăng ký GitHub, hãy chuyển đến góc trên bên phải của màn hình và tìm một menu thả xuống Plus kế bên hình đại diện hồ sơ của bạn. Nếu bạn mở menu này, nó sẽ hiển thị một số tùy chọn, bao gồm New repository:
Chọn để tạo kho lưu trữ mới trong GitHub
Sau khi bạn nhấp vào đây, bạn sẽ đến trang Tạo một kho lưu trữ mới. Trang này sẽ hiển thị cho bạn một loạt các thiết lập để giúp bạn thiết lập kho lưu trữ từ xa:
Đang tạo một kho lưu trữ mới trong GitHub
Những tùy chọn bạn đặt ở đây sẽ phù hợp với nhu cầu dự án của bạn. Tuy nhiên, nếu bạn đã có một kho lưu trữ local để đẩy lên GitHub, chúng tôi khuyên bạn nên chọn ít tùy chọn nhất có thể để duy trì sự cân bằng giữa local và remote.
Từ đây, hãy nhấp vào nút Create repository, và GitHub sẽ thiết lập mọi thứ dưới hệ thống. Tại thời điểm này, bạn sẽ đến trang chủ kho lưu trữ với các hướng dẫn về cách thiết lập một kho lưu trữ local mới liên kết với remote bằng dòng lệnh. Con đường bạn đi sẽ phụ thuộc vào việc bạn đã có sẵn một kho lưu trữ local hay muốn sao chép nội dung của một dự án hiện có.
Nếu bạn đã khởi tạo Git và điền vào kho lưu trữ local của mình, bạn sẽ không cần thực hiện bất kỳ điều gì từ bước hai. Thay vào đó, bạn có thể tiếp tục bước thứ ba, nơi chúng tôi sẽ xem xét quá trình đẩy mã lên GitHub từ kho lưu trữ local của bạn.
2a. Sao chép kho lưu trữ Git từ xa của bạn
Nếu bạn chưa có kho lưu trữ local, phiên bản từ xa của GitHub sẽ là duy nhất. Cách tốt nhất để đồng bộ hai vị trí này là sử dụng lệnh git clone
trên máy tính của bạn. Tuy nhiên, bạn cần URL cho kho lưu trữ của bạn.
Để làm điều này, hãy truy cập vào kho lưu trữ trên GitHub và tìm tùy chọn Code màu xanh lá cây phía trên danh sách tệp của bạn:
Một phần của kho lưu trữ trong GitHub
Nếu bạn không thấy điều này, có thể do từ chưa có kho lưu trữ đã được điền. Lưu ý rằng bạn có thể sao chép URL của kho lưu trữ từ hộp Quick Setup màu xanh da trời ở đầu màn hình. Chỉ cần chuyển sang HTTPS bằng các nút và sao chép URL.
Tuy nhiên, chúng tôi muốn tạo một tệp .gitignore vì đây là điều bạn không thể thiếu. Bạn có thể sử dụng gitignore.io để tìm kiếm các công cụ bạn sử dụng và từ đó tạo một tệp .gitignore hoàn chỉnh để tải lên kho lưu trữ của bạn.
Dù sao, sau khi bạn có thể mở rộng tùy chọn Code, nó sẽ hiển thị URL cho kho lưu trữ của bạn. Sẽ có tùy chọn cho HTTPS, Secure Shell (SSH) và các tùy chọn khác. Tuy nhiên, cách tiếp cận trực quan nhất là sử dụng URL HTTPS. Bạn có thể nhấp vào biểu tượng Copy nhỏ bên cạnh URL tương ứng để sao chép nó vào clipboard của bạn.
Tiếp theo, quay trở lại Terminal hoặc ứng dụng dòng lệnh và chạy lệnh sau:
git clone
Khi bạn chạy lệnh, Git sẽ sao chép kho lưu trữ từ xa của bạn vào môi trường local.
2b. Khởi tạo Git trong thư mục dự án cục bộ của bạn
Đối với các tình huống mà bạn chưa có một phiên bản cục bộ của kho lưu trữ từ xa, bạn cần khởi tạo một phiên bản. Hầu hết công việc bạn làm sẽ nằm ở local, và bạn chỉ đẩy các thay đổi lên máy chủ từ xa vào các khoảng thời gian đều đặn. Đây là các bước:
- Đầu tiên, chuyển đến thư mục bạn muốn sử dụng cho dự án của bạn.
- Tiếp theo, chạy lệnh
git init
. Điều này sẽ khởi tạo Git trong thư mục dự án cục bộ của bạn và tạo một thư mục ẩn.git
. - Thêm tệp .gitignore của bạn vào thư mục gốc của dự án cục bộ, vì bạn sẽ không muốn đưa vào giai đoạn một số thay đổi liên quan đến các tệp hệ thống.
Tại thời điểm này, bạn cần thực hiện lập chỉ mục các tệp hiện tại của mình. Bạn làm điều này theo cách thông thường bằng cách sử dụng git add
, sau đó tạo commit:
git add . git commit -m “Initial Commit”
Nếu bạn chưa chuyển sang các nhánh khác mà bạn chọn (nếu bạn chưa chuyển từ master
), dòng lệnh sau sẽ thay đổi nhánh chính thành một nhánh khác theo sự lựa chọn của bạn. Trong ví dụ này, chúng tôi đã sử dụng trunk
, nhưng main
cũng được chấp nhận. Nếu bạn biết rằng dòng cuối cùng này không phải là một dòng bạn cần, bạn có thể bỏ qua nó.
Tại thời điểm này, bạn đã sẵn sàng học cách đẩy mã lên GitHub!
3. Thêm nguồn gốc từ xa mới và đẩy mã của bạn lên GitHub
Sau khi bạn đã tạo một kho lưu trữ từ xa mới trên GitHub, bạn cần thêm một nguồn gốc mới vào kho dự án cục bộ của bạn. Đó là liên kết với kho lưu trữ từ xa, để kho dự án cục bộ của bạn biết nơi gửi các thay đổi lên máy chủ.
Để làm điều này, hãy nhập lệnh sau vào terminal của bạn:
git remote add origin
Kỹ thuật nói thì nguồn gốc mà bạn thêm có thể là bất kỳ tên nào. Tuy nhiên, hầu hết người gọi nó là "origin" vì bạn chỉ sử dụng một lần thêm remote và nó mang lại sự rõ ràng tuyệt đối. Tại thời điểm này, bạn có thể đẩy lên GitHub bằng cách sử dụng lệnh sau:
git push -u origin trunk
Lệnh này sẽ đẩy mã của bạn lên nguồn gốc từ xa mới - có tên là "origin" - và đặt nhánh nguồn lợi (upstream) thành "trunk." Bạn cũng có thể đẩy bất kỳ nhánh nào lên kho lưu trữ từ xa nếu cần.
Chạy lệnh push trong Terminal.
Sau khi quá trình hoàn thành, bạn cần xác minh rằng quá trình đẩy đã thành công. Có một số cách để làm điều này. Ví dụ, bạn có thể truy cập vào kho lưu trữ trên GitHub và kiểm tra xem các thay đổi có hiển thị trực tiếp hay không:
Kiểm tra trạng thái của kho lưu trữ Git trên GitHub.
Tuy nhiên, bạn cũng có thể chạy git log
từ dòng lệnh:
Chạy lệnh log trong Terminal và xem kết quả.
Lệnh này hiển thị mọi commit cho kho lưu trữ của bạn, bao gồm cả commit bạn vừa đẩy. Do đó, nếu commit có trong log, thì quá trình đẩy đã thành công.
Làm thế nào để đẩy lên GitHub mà không gặp lỗi
Trong một số trường hợp, bạn có thể gặp phải lỗi khi bạn cố gắng đẩy mã lên GitHub:
Gặp lỗi khóa RSA sau khi chạy git push
.
Điều này xảy ra khi bạn đã có kết nối an toàn đến GitHub thông qua một dự án cũ sử dụng một khóa RSA cũ. Chúng tôi có một hướng dẫn về cách khắc phục vấn đề này tổng quát. Tuy nhiên, để khắc phục vấn đề này cho GitHub cụ thể, bạn có thể chạy lệnh sau:
ssh-keygen -R github.com
Điều này sẽ cập nhật tệp "known_hosts" của bạn, sau đó hiển thị một thông báo xác nhận:
Gỡ bỏ khóa host cũ bằng Terminal.
Từ đây, chạy lệnh sau để thêm khóa RSA mới của bạn vào tệp known hosts của bạn:
curl -L https://api.github.com/meta | jq -r '.ssh_keys | .[]' | sed -e 's/^/github.com /' >> ~/.ssh/known_hosts
Trên thực tế, bạn cũng có thể gặp lỗi ở đây, liên quan đến gói jq. Trong trường hợp này, bạn có thể chạy một trong hai lệnh sau tuỳ thuộc vào hệ điều hành của bạn:
- Windows:
curl -L -o /usr/bin/jq.exe https://github.com/stedolan/jq/releases/latest/download/jq-win64.exe
- Mac:
brew install jq
- Linux:
apt-get update | apt-get -y install jq
Sau khi cài đặt, chạy lại lệnh và chờ cho nó hoàn tất:
Tạo khóa RSA mới sử dụng Terminal.
Cuối cùng, chạy lại lệnh git push
, lần này bạn nên thấy quá trình hoàn tất. Nếu không, vấn đề có thể do khóa SSH không chính xác hoặc bạn cần thiết lập kết nối an toàn bằng khóa riêng. Chúng tôi có hướng dẫn đầy đủ về cách tạo khóa SSH mới cho GitHub, và tài liệu của GitHub cũng rất toàn diện ở đây.
Sử dụng GUI để đẩy mã của bạn lên GitHub
Mặc dù quá trình đẩy mã lên GitHub là đơn giản khi bạn đã cài đặt nó, có nhiều bước, lưu ý và quá trình con để xem xét. Một GUI có thể đơn giản hóa quá trình.
Ví dụ, bạn có tất cả các chức năng của dòng lệnh, nhưng sử dụng giao diện đẹp hơn (với chức năng kéo và thả trong một số trường hợp). Ngoài ra, thường dễ hình dung và quản lý các thay đổi thông qua GUI, đặc biệt nếu bạn không quen với các công cụ dòng lệnh.
Nếu bạn biết rằng bạn sẽ không bao giờ cần sử dụng ứng dụng giao diện người dùng của mình để truy cập vào máy chủ VCS từ xa khác, GitHub Desktop có thể hoàn hảo.
Ứng dụng GitHub Desktop.
Ứng dụng cho phép bạn tạo và quản lý kho lưu trữ, tạo commit và đẩy các thay đổi lên GitHub chỉ với vài cú nhấp chuột. Nó hoạt động bằng cách sử dụng chức năng kéo và thả và cũng có một công cụ 'visual diff' giúp bạn nhìn thấy sự khác biệt giữa các phiên bản:
Xem sự khác biệt trong một commit bằng GitHub Desktop.
Sourcetree là một ứng dụng Git GUI khác mà chúng tôi xem xét trong danh sách các công cụ phát triển web. Trong khi VCS ưu tiên là BitBucket (vì nó là một sản phẩm của Atlassian), bạn vẫn có thể sử dụng công cụ này với GitHub. Công cụ giải quyết xung đột hợp nhất cũng rất hữu ích và là một trong những tính năng nổi bật.
GitKraken có thể coi là ứng dụng GUI tốt nhất và cung cấp phiên bản miễn phí hợp lý cho các kho lưu trữ cục bộ và công khai. Nó hỗ trợ tất cả các dịch vụ quản lý phiên bản chính - bao gồm GitHub, tất nhiên, nhưng cũng có GitLab và BitBucket, và nhiều hơn nữa. Chúng tôi yêu thiết kế hình ảnh của nó và giải pháp cung cấp các tính năng đáng suy nghĩ cho cả nhóm.
Sử dụng GitHub Desktop để đẩy mã lên GitHub
Mặc dù quy trình cho từng ứng dụng sẽ có một số khác biệt nhỏ, GitHub Desktop rất tuyệt. Bạn làm việc trong một màn hình duy nhất sử dụng các cửa sổ và bảng điều khiển khác nhau. Khi bạn thay đổi một tệp (có thể mở bằng trình biên tập mà bạn chọn từ menu ngữ cảnh chuột phải), bạn tạo commit bằng một tiện ích nhỏ trên màn hình:
Tạo commit trong GitHub Desktop.
Commit này sẽ trở thành một phần của phần Push Origin trong thanh công cụ phía trên: Nếu bạn không có bất kỳ thay đổi nào để commit, cũng sẽ có thông báo để đẩy các commit lên gốc:
Đẩy những thay đổi lên từ xa trong GitHub Desktop.
Đây là một giải pháp bấm một lần để đẩy thay đổi lên kho lưu trữ GitHub của bạn. Toàn bộ quá trình là nhanh chóng, dễ dàng và đơn giản để thực hiện.
Sử dụng Kinsta Application Hosting và GitHub
Nếu bạn là khách hàng Kinsta, bạn có thể mang tất cả các ứng dụng của mình đến chúng tôi. Application và Database Hosting của chúng tôi cho phép bạn triển khai hầu hết các ứng dụng bằng nhiều ngôn ngữ, chẳng hạn như PHP, Node, Python và nhiều hơn nữa. Bạn có thể kết nối với GitHub mà không cần sử dụng nhiều lệnh Git.
Để bắt đầu, đăng nhập vào bảng điều khiền Kinsta của bạn và điều hướng đến màn hình Applications. Ở lần đầu truy cập, nó sẽ trông trống rỗng:
Trang Ứng dụng MyKinsta trong Bảng điều khiển của tôi.
Tuy nhiên, nếu bạn nhấp vào nút Add service, điều này sẽ cho bạn tùy chọn triển khai một ứng dụng hoặc cơ sở dữ liệu. Ví dụ này, chúng tôi sẽ chọn Ứng dụng:
Thêm một dịch vụ mới bằng nút tương ứng trong trang Ứng dụng MyKinsta.
Kinsta sau đó sẽ yêu cầu bạn kết nối với GitHub để nhập dự án từ nền tảng:
Việc tích hợp với GitHub sau khi bạn thêm một dịch vụ mới.
Ngay sau đó, các trình hướng dẫn sẽ giúp bạn thiết lập ứng dụng của bạn. Đầu tiên, bạn cần chọn một kho từ GitHub, sau đó chọn nhánh mặc định:
Đặt chi tiết ứng dụng của bạn cho việc triển khai trong trình tạo Ứng dụng MyKinsta.
Bạn cũng cần đặt tên ứng dụng của bạn trong Kinsta và chọn trung tâm dữ liệu chính xác. Sau khi nhấp vào Tiếp tục, bạn cần điều chỉnh cài đặt môi trường xây dựng:
Cài đặt môi trường xây dựng trong trình tạo Ứng dụng.
Ở đây, bạn có một số tùy chọn:
- Chọn máy chủ xây dựng từ danh sách.
- Thiết lập hình ảnh container, bằng cách sử dụng tự động hóa hoặc từ một đường dẫn cụ thể của riêng bạn.
Sau đó, bạn cần thiết lập tài nguyên và quy trình của bạn. Các Ví dụ Khởi đầu Nhanh của chúng tôi bao gồm các quy trình web tương ứng, nhưng bạn cũng có thể thiết