Cách Sử Dụng GitHub trên Ubuntu: Hướng Dẫn Đầy Đủ Từ Cơ Bản Đến Nâng Cao với Git, SSH và VS Code

目次

1. Giới thiệu

Tại sao Kết nối Ubuntu với GitHub?

Trong những năm gần đây, việc sử dụng Git và GitHub đã trở thành thực hành tiêu chuẩn trong phát triển phần mềm và vận hành hệ thống. Đối với các kỹ sư và lập trình viên làm việc trong môi trường Linux như Ubuntu, tích hợp với GitHub là một phần của quy trình làm việc hàng ngày.

Git là một công cụ để quản lý lịch sử phiên bản mã nguồn và rất cần thiết cho sự hợp tác hiệu quả giữa nhiều nhà phát triển. GitHub, mặt khác, là một dịch vụ lưu trữ cho phép các kho lưu trữ được quản lý bởi Git được chia sẻ và xuất bản trực tuyến, đóng vai trò là trung tâm toàn cầu để các nhà phát triển trao đổi mã.

Tại sao Sử dụng GitHub trên Ubuntu?

Ubuntu là một bản phân phối Linux rất phổ biến trong giới lập trình viên và nổi tiếng với tính tương thích tuyệt vời với phát triển mã nguồn mở. Nó cung cấp một môi trường nơi Git và các công cụ phát triển khác có thể được cài đặt dễ dàng, làm cho việc tích hợp GitHub trở nên mượt mà và hiệu quả.

Các trường hợp sử dụng điển hình khi kết hợp Ubuntu và GitHub bao gồm:

  • Quản lý và chia sẻ mã nguồn Python, C++ và các ngôn ngữ khác trên GitHub
  • Đóng góp vào các dự án mã nguồn mở
  • Xuất bản công việc của bạn như một danh mục đầu tư

Những gì Bạn Sẽ Học trong Bài Viết Này

Hướng dẫn này giải thích mọi thứ từ cơ bản đến nâng cao về sử dụng GitHub trên Ubuntu qua các bước sau:

  • Cách cài đặt Git trên Ubuntu
  • Cấu hình Git ban đầu và thiết lập SSH
  • Tạo và quản lý kho lưu trữ GitHub
  • Phát triển hiệu quả sử dụng Visual Studio Code
  • Mẹo khắc phục sự cố phổ biến và Câu hỏi thường gặp

Ngay cả người dùng GitHub lần đầu cũng có thể theo dõi một cách an toàn, với các ví dụ lệnh thực tế và ghi chú quan trọng được bao gồm. Nếu bạn muốn tận dụng tối đa GitHub trên Ubuntu, hãy đọc đến hết.

2. Cài đặt Git trên Ubuntu

Git Là Gì? Ôn Tập Nhanh

Git là một Hệ thống Kiểm soát Phiên bản (VCS) được sử dụng trong phát triển phần mềm để quản lý lịch sử thay đổi của mã nguồn. Nó cho phép các nhà phát triển khôi phục trạng thái trước đó và hợp tác đồng thời.

Một lợi thế lớn của môi trường Linux như Ubuntu là Git có thể được cài đặt dễ dàng như thế nào. Sử dụng phương pháp bên dưới, việc cài đặt có thể hoàn thành trong vài phút qua terminal.

Cài đặt Git qua APT

Cách phổ biến nhất để cài đặt Git trên Ubuntu là sử dụng APT (Advanced Package Tool). Thực hiện theo các bước sau:

1. Cập nhật Danh sách Gói

sudo apt update

Lệnh này lấy thông tin gói mới nhất. Luôn chạy nó trước khi cài đặt phần mềm mới.

2. Cài đặt Git

sudo apt install git

Khi được hỏi “Y/n”, gõ y và nhấn Enter để bắt đầu cài đặt.

Xác minh Cài đặt Git

Sau khi cài đặt, xác nhận rằng Git đã được cài đặt đúng:

git --version

Nếu bạn thấy đầu ra như sau, Git đã được cài đặt thành công:

git version 2.34.1

Số phiên bản có thể khác nhau tùy thuộc vào bản phát hành Ubuntu của bạn, nhưng bất kỳ đầu ra phiên bản nào cũng xác nhận thành công.

Cài đặt qua Snap (Tùy chọn)

Mặc dù Git cũng có thể được cài đặt bằng lệnh snap, APT thường ổn định hơn và được sử dụng rộng rãi hơn. Trừ khi bạn có lý do cụ thể, APT được khuyến nghị.

3. Cấu hình Git Ban đầu

Thiết lập Cần thiết Trước khi Sử dụng Git

Sau khi Git được cài đặt, bước tiếp theo là cấu hình thông tin người dùng và xác thực. Cấu hình đúng đảm bảo tương tác mượt mà với các kho lưu trữ từ xa và quy trình làm việc nhóm.

Thiết lập Tên người dùng và Email Git

Git ghi lại ai đã thực hiện mỗi commit. Do đó, bạn phải cấu hình tên người dùng và địa chỉ email.

Lệnh Cấu hình

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

Các giá trị này không cần phải khớp chính xác với tài khoản GitHub của bạn, nhưng sử dụng cùng email với GitHub giúp liên kết các commit đúng cách.

Xác minh Cấu hình

git config --list

Lệnh này hiển thị cấu hình Git hiện tại của bạn.

Tạo và Đăng ký Khóa SSH

Mặc dù HTTPS được hỗ trợ, xác thực SSH loại bỏ các lời nhắc mật khẩu lặp lại và cung cấp quy trình làm việc an toàn và hiệu quả hơn.

1. Tạo Khóa SSH

ssh-keygen -t ed25519 -C "you@example.com"

Nhấn Enter nhiều lần để tạo khóa riêng (~/.ssh/id_ed25519) và khóa công khai (~/.ssh/id_ed25519.pub).

2. Khởi Động SSH Agent và Thêm Khóa

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Khóa SSH giờ đây đã sẵn sàng để sử dụng.

3. Thêm Khóa Công Khai Vào GitHub

Sao chép khóa công khai:

cat ~/.ssh/id_ed25519.pub

Sau đó đăng ký nó trên GitHub:

  1. Đăng nhập vào GitHub
  2. Nhấp vào hình ảnh hồ sơ của bạn → Settings
  3. Chọn “SSH and GPG keys”
  4. Nhấp vào “New SSH key”, dán khóa, và lưu

4. Kiểm Tra Kết Nối SSH

ssh -T git@github.com

yes khi được nhắc để tin cậy máy chủ.

Nếu thành công, bạn sẽ thấy:

Hi your-username! You've successfully authenticated, but GitHub does not provide shell access.

Các Bước Tiếp Theo Được Khuyến Nghị

Với thiết lập này hoàn tất, bạn giờ đây có thể clone, push và pull các kho lưu trữ GitHub. Phần tiếp theo giải thích cách tạo và vận hành các kho lưu trữ GitHub trong thực tế.

4. Làm Việc Với Các Kho Lưu Trữ GitHub

Tạo Kho Lưu Trữ Mới Trên GitHub

Sau khi đăng nhập vào GitHub, bắt đầu bằng cách tạo một kho lưu trữ mới.

Các Bước (Qua Trình Duyệt Web)

  1. Nhấp vào nút “+” ở góc trên bên phải của trang chủ GitHub và chọn “New repository”.
  2. Nhập các thông tin sau:
  • Tên kho lưu trữ : Ví dụ: my-first-repo
  • Mô tả (tùy chọn) : Giải thích ngắn gọn
  • Public / Private : Chọn mức độ hiển thị của kho lưu trữ
  1. Nhấp vào “Create repository”.

Sau khi tạo, URL của kho lưu trữ sẽ được hiển thị. Bạn sẽ sử dụng URL này để clone và quản lý kho lưu trữ.

Clone Một Kho Lưu Trữ GitHub Hiện Có

Để sao chép một kho lưu trữ vào môi trường Ubuntu cục bộ của bạn, sử dụng lệnh git clone.

git clone git@github.com:your-username/my-first-repo.git

Ví dụ này sử dụng SSH. Nếu bạn sử dụng HTTPS, URL sẽ khác.

Sau khi thực thi, một thư mục có tên my-first-repo sẽ được tạo chứa các tệp của kho lưu trữ.

Quy Trình Thay Đổi Tệp, Staging Và Commit

1. Thêm Hoặc Chỉnh Sửa Tệp

Ví dụ, tạo một tệp mới:

echo "# My First GitHub Project" > README.md

2. Staging Các Thay Đổi

git add README.md

Staging chọn những thay đổi nào sẽ được bao gồm trong commit tiếp theo.

3. Commit Các Thay Đổi

git commit -m "Initial commit: add README.md"

Các thay đổi của bạn giờ đây đã được lưu vào lịch sử kho lưu trữ cục bộ.

Push Các Thay Đổi Lên GitHub

Để phản ánh các thay đổi cục bộ lên kho lưu trữ GitHub từ xa, sử dụng git push.

git push origin main

Nếu nhánh mặc định của bạn không phải là main (ví dụ, master), hãy điều chỉnh tên nhánh tương ứng.

Pull Các Thay Đổi Từ Xa Về Cục Bộ

Nếu một nhà phát triển khác đã thực hiện thay đổi, sử dụng lệnh sau để cập nhật kho lưu trữ cục bộ của bạn:

git pull origin main

Điều này hợp nhất các thay đổi từ xa vào nhánh cục bộ của bạn.

Các Hoạt Động Bổ Sung Phổ Biến

  • Kiểm tra các kho lưu trữ từ xa:
    git remote -v
    
  • Thêm một kho lưu trữ GitHub khác sau này:
    git remote add origin git@github.com:your-username/another-repo.git
    
  • Chỉnh sửa README.md hoặc .gitignore tuân theo quy trình tương tự.

5. Tích Hợp Với Visual Studio Code

Tại Sao VS Code Lý Tưởng Cho Các Hoạt Động Git

Khi sử dụng GitHub trên Ubuntu, việc kết hợp với Visual Studio Code (VS Code) sẽ cải thiện đáng kể năng suất. VS Code là một trình chỉnh sửa mã nguồn mở được phát triển bởi Microsoft và nổi tiếng với tích hợp Git xuất sắc. Nó cho phép commit, push và xem diff qua GUI, giúp thân thiện với người mới bắt đầu.

Cài Đặt VS Code Trên Ubuntu

Bạn có thể dễ dàng cài đặt VS Code trên Ubuntu bằng các bước sau.

1. Thêm Kho Lưu Trữ Microsoft

sudo apt update
sudo apt install wget gpg
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg
sudo install -o root -g root -m 644 packages.microsoft.gpg /usr/share/keyrings/

2. Đăng ký Kho Lưu Trữ

sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'

3. Cài đặt VS Code

sudo apt update
sudo apt install code

Sau khi cài đặt, bạn có thể khởi chạy VS Code bằng cách gõ code trong terminal.

Hỗ trợ Git tích hợp sẵn

VS Code đã bao gồm tích hợp Git mặc định, vì vậy không cần cài thêm plugin cho các thao tác Git cơ bản. Đối với các nhu cầu nâng cao, khuyến nghị các tiện ích mở rộng sau:

  • GitHub Pull Requests and Issues Cho phép xử lý Pull Request và quản lý Issue qua giao diện GUI.
  • GitLens Hiển thị lịch sử từng dòng, cho biết ai đã thay đổi gì và khi nào.

Các thao tác Git cơ bản trong VS Code

Mở một Kho Lưu Trữ

Đi tới thư mục kho đã sao chép và chạy:

code .

Xem lại thay đổi và Commit

  • Nhấn biểu tượng Source Control ở thanh bên trái
  • Xem danh sách các tệp đã sửa đổi
  • Chọn một tệp để xem diff
  • Nhập thông điệp commit và nhấn biểu tượng ✓

Thao tác Push và Pull

  • Chọn “Push” hoặc “Pull” từ menu “…”
  • Hoặc dùng thanh trạng thái ở góc dưới bên phải

Sử dụng Terminal tích hợp

Terminal tích hợp (Ctrl + `) cho phép chuyển đổi liền mạch giữa giao diện GUI và CLI. Ví dụ, bạn có thể commit qua GUI và quản lý nhánh qua terminal.

Mẹo Khắc phục Sự cố

  • Nếu gặp lỗi SSH, hãy kiểm tra VS Code đang tham chiếu đúng khóa SSH
  • Bạn có thể cần cấu hình lại xác thực hoặc sử dụng Personal Access Token (PAT) của GitHub

6. Các vấn đề thường gặp

Lỗi SSH: “Permission denied (publickey).”

Nguyên nhân có thể

  • Khóa SSH chưa được tạo đúng cách
  • Khóa công khai chưa được đăng ký trên GitHub
  • SSH agent chưa tải khóa

Giải pháp

  1. Kiểm tra xem đã có khóa SSH chưa:
    ls ~/.ssh/id_ed25519.pub
    

Nếu chưa có, tạo một khóa mới:

ssh-keygen -t ed25519 -C "your_email@example.com"
  1. Khởi động SSH agent và thêm khóa vào:
    eval "$(ssh-agent -s)"
    ssh-add ~/.ssh/id_ed25519
    
  1. Thêm khóa công khai vào GitHub:
    cat ~/.ssh/id_ed25519.pub
    

Thêm dưới mục “SSH and GPG keys” trên GitHub.

  1. Kiểm tra kết nối:
    ssh -T git@github.com
    

Lỗi Xác thực với HTTPS

Nguyên nhân

  • Xác thực bằng mật khẩu đã bị ngừng hỗ trợ; cần dùng xác thực dựa trên token

Giải pháp

  1. Tạo Personal Access Token trên GitHub https://github.com/settings/tokens Đánh dấu phạm vi repo khi tạo token
  2. Sử dụng tên người dùng GitHub và chuỗi token làm mật khẩu
  3. Bật bộ nhớ đệm thông tin đăng nhập nếu muốn:
    git config --global credential.helper cache
    

Lỗi: “fatal: not a git repository”

Nguyên nhân

  • Thư mục hiện tại không phải là một kho Git

Giải pháp

  • Di chuyển vào thư mục kho đã tồn tại:
    cd ~/your-project-directory
    
  • Hoặc khởi tạo một kho mới:
    git init
    

Xử lý Xung đột Hợp nhất

Nguyên nhân

  • Xung đột xảy ra khi nhiều người cùng chỉnh sửa cùng một phần của tệp

Giải pháp

  1. Mở tệp bị xung đột sau lỗi git pull
  2. Tìm các dấu đánh dấu xung đột:
    <<<<<<< HEAD
    Your changes
    =======
    Other changes
    >>>>>>> origin/main
    
  1. Chỉnh sửa nội dung, xóa các dấu đánh dấu và lưu lại
  2. Sau đó chạy:
    git add .
    git commit
    

Lỗi: “remote: Repository not found.”

Nguyên nhân

  • URL kho không đúng
  • Không có quyền truy cập vào kho

Giải pháp

  • Kiểm tra URL remote:
    git remote -v
    
  • Đặt lại URL nếu cần thiết:
    git remote set-url origin git@github.com:your-username/your-repo.git
    

Những vấn đề này thường gặp ở người mới bắt đầu. Tuy nhiên, với nguyên nhân và giải pháp rõ ràng, chúng có thể được giải quyết một cách bình tĩnh. Hãy coi lỗi là cơ hội học tập và dần dần xây dựng sự tự tin.

7. Câu hỏi thường gặp

Q1. Sự khác nhau giữa Git và GitHub là gì?

A:
Git là một công cụ kiểm soát phiên bản quản lý lịch sử thay đổi cục bộ. GitHub là một dịch vụ đám mây lưu trữ các kho Git và cho phép chia sẻ và cộng tác.

  • Git: Quản lý lịch sử cục bộ và ngoại tuyến
  • GitHub: Lưu trữ kho trực tuyến và cộng tác

Q2. Tôi nên sử dụng SSH hay HTTPS?

A:
SSH được khuyến nghị vì:

  • Không cần nhập lại mật khẩu
  • Bảo mật hơn và tiện lợi lâu dài

Tuy nhiên, HTTPS có thể được yêu cầu trong một số môi trường doanh nghiệp hoặc mạng.

Q3. Làm thế nào để sử dụng nhiều tài khoản GitHub trên Ubuntu?

A:
Tạo các khóa SSH riêng biệt cho mỗi tài khoản và cấu hình chúng một cách rõ ràng.

  1. Tạo các khóa SSH riêng biệt. Ví dụ: ~/.ssh/id_ed25519_work, ~/.ssh/id_ed25519_personal
  2. Chỉnh sửa ~/.ssh/config :
    Host github.com-work
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_ed25519_work
    
    Host github.com-personal
        HostName github.com
        User git
        IdentityFile ~/.ssh/id_ed25519_personal
    
  1. Cập nhật URL remote :
    git remote set-url origin git@github.com-work:your-work-user/your-repo.git
    

Q4. Tôi có thể sử dụng Git với giao diện đồ họa (GUI) không?

A:
Có. Visual Studio Code cung cấp các thao tác Git dựa trên GUI, bao gồm commit, push, diff và quản lý nhánh. Nó được khuyến nghị mạnh mẽ cho người mới bắt đầu.

Q5. Điều gì sẽ xảy ra nếu tôi xóa kho lưu trữ từ xa?

A:
Xóa một kho lưu trữ từ xa không ảnh hưởng đến kho lưu trữ cục bộ. Tuy nhiên, lệnh git push sẽ thất bại.

Bạn có thể kết nối lại với một kho mới như sau:

git remote set-url origin git@github.com:new-user/new-repo.git

Q6. Có thể tránh hoàn toàn việc sử dụng terminal không?

A:
Có. Các client Git có giao diện đồ họa cho phép làm việc không cần terminal:

  • GitKraken
  • Sourcetree (not officially supported on Linux)
  • Visual Studio Code (built-in Git support)

Đối với người dùng Ubuntu, sự kết hợp VS Code + GitLens là thực tế và thân thiện nhất.

Q7. Lịch sử Git có thể quay lại bao xa?

A:
Git lưu giữ tất cả lịch sử từ lần commit đầu tiên. Bạn có thể xem nó bằng cách:

git log

Để xem lịch sử của một tệp cụ thể:

git log path/to/file
年収訴求