Remote Branch (Bài trước)
Mục lục Git - GitHub

GitHub là gì, đăng ký GitHub

GitHub chính là một dịch vụ, máy chủ Git ở đó chúng ta có thể lưu trữ các Remote Repository, tất nhiên bạn có thể tự tạo ra một máy chủ riêng, nhưng nếu không muốn tạo thì dịch vụ GitHub là lựa chọn rất tốt. Các Repo lưu trên GitHub có thể thiết lập ở chế đọ public (miễn phí - ai cũng truy cập được Repo của bạn), hoặc chế độ private (có phí).

Đăng ký tài khoản GitHub, để đăng ký bạn chỉ cần có một Email và khai báo theo các bước Join GitHub để có một tài khoản GitHub

Ở màn hình đầu tiên bạn khai báo tên ví dụ xuanthulabnet, email, password rồi bấm vào Create an acount

Các Video: Sử dụng Git, GitHub

Khai báo các thông tin bổ xung ở những màn hình tiếp theo, những thông tin này hết sức đơn giản

Sau khi đăng ký, nhớ mở email để xác nhận, sau đó vào mục Your profile cập nhật thông tin cá nhân nếu muốn

Truy cập GitHub qua SSH key

Để làm việc với các Repo GitHub của bạn một cách thoải mái nhất, có thể thực hiện các lệnh Git đã biết bằng dòng lệnh qua cmd, Git Bash ... ta sẽ thiết lập để truy cập được qua SSH Key

1) Tạo SSH Key

Tìm hiểu chi tiết về SSH, SSH Key thì xem tại Truy cập Server với SSH, ở đây coi như máy tính của bạn đã có cài Open SSH, hãy chạy tạo một thư mục ví dụ c:\sshforgithub, sau đó chạy cmd chuyển vào thư mục đó và gọi lệnh sau:

cd c:\sshforgithub
ssh-keygen -t rsa -f id_rsa

Khi nó hỏi Enter passphrase có thể nhấn Enter để trống cái này. Kết thúc lệnh đó thì trong c:\sshforgithub sẽ có SSH Key cho bạn gồm có public key là file id_rsa.pub và private key là file: id_rsa

2) Thiết lập SSH public key cho GitHub

Mở file id_rsa.pub copy toàn bộ nội dung trong file đó vào clipboad, nội dung trong đó có dạng như:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBMTYB/VzdxuVQXY81NUP4aZL4Urk+
tKPN9M12JQLzuTIuQL+eioECGL592xCja+NxsGDRW62rwQqMlJDZvF49EfdaWDT/FyhHfGcuy6laQHHEuv+kIVAPcT7JIRjUD5NMztvlaGvONnD0jMCdDjVmXmkNLJJuQCg
/lhLhSSiR4EhtLyWYfb4gs0Kl5qnVSs1pNCuGOR8St1WzdOoZVJm9QPPQN98NLX0PlZLrOnYsbP+ILUhuC1NmvY8zh8ebtikitoZq1OS5Mboo9d8EYenKAA19+FoBLT
+d1W0ofL0Sm5pAwxE5lva19drGIFZIfmQJ7nbB4SAmQ4kRb4fPJm8j dao xuan thu@DESKTOP-K03L9RD

Trở lại tài khoản GitHub truy cập vào Setting

Ở màn hình mới, chọn mục có tên SSH and GPG key, sau đó chọn đến mục new SSH Key

Tại cửa sổ mới này, điền một tiêu đề SSH ở phần Title, còn phần key thì copy và past toàn bộ nội dung file id_rsa.pub vào. Cuối cùng bấn Add SSH Key để hoàn thành

Vậy là hoàn thành bước thiết lập public SSH key cho GitHub, giờ có thể truy cập tới các Repo của bạn bằng kết nối SSH với file private ksy c:\sshforgithub\id_rsa và user truy cập là tên user bạn đăng ký, như ví dụ trên là xuanthulabnet

3) Thiết lập private SSH cho SSH/Git tại máy của bạn

Mở thư mục người dùng, ví dụ user đang logon máy Windows là XuanThuLab, thì thường thư mục đó là C:\Users\XuanThuLab, nếu đã cài đúng SSH cho Windows, thì sẽ có thư mục .ssh trong đó, mở thư mục đó ra, mở file config thêm vào đoạn cấu hình để chị ra host, user, private key khi truy cập SSH với nội dung như sau

Host GitHub.com - xuanthulabnet
User git
Hostname github.com
Port 22
PreferredAuthentications publickey
IdentityFile "C:\sshforgithub\id_rsa"

Nhớ thay phần màu vàng đúng thông tin của riêng bạn

Từ đây Git tại máy của bạn có thể truy cập thoải mái tới GitHub

Tạo Repo GitHub và làm việc qua lệnh Git

Tạo Repo trên GitHub

Giả sủ bạn sẽ tạo ra một dự án code, sẽ lựu trữ tại GitHub, trước tiên sẽ tạo Repo đó trên GitHub. Từ GitHub chọn menu + New Repository

Từ cửa sổ mới, điền tên dự án (Repo) của bạn vào ví dụ firstproject

Sau đó chọn Public nếu bạn dùng tài khoản miễn phí, cuối cùng chọn Create repository

Repo trên GitHub của bạn đã được tạo ra, cho biết địa chỉ của Repo này, ví dụ https://github.com/xuanthulabnet/firstproject

Địa chỉ SSH của Repo thì theo cấu trúc git@github.com:user_name/repo_name.git, ở Repo mới tạo ra trên thấy có địa chỉ là git@github.com:xuanthulabnet/firstproject.git

Thiết lập kết nối Local Repo với Remote Repo GitHub

Giờ bạn đã có một Repo GitHub với địa chỉ truy cập qua nền web là https://github.com/xuanthulabnet/firstproject, bạn có thể thêm file mới, xóa, chỉnh sửa thông qua giao diện web với địa chỉ này. Ngoài ra địa chỉ SSH là git@github.com:xuanthulabnet/firstproject.git qua đó bạn có thể làm việc với các lệnh Git và kết nối với Local Repo

Có hai trường hợp, nếu đã có sẵn Local Repo ví dụ lưu tại thư mục c:\local\firstproject thì bạn chỉ việc thực hiện lệnh thêm Remote GitHub cho nó bằng lệnh:

$ git remote add origin git@github.com:xuanthulabnet/firstproject.git

Hoặc là nếu thiết lập một Local Repo mới hoàn toàn bằng cách clone Remote Repo, giả sử clone và lưu vào c:\local\firstproject

$ git clone git@github.com:xuanthulabnet/firstproject.git /c/local/firstproject

Cuối cùng là bạn đã có một Local Repo đã kết nối với Remote Repo Git, giờ là lúc làm việc với GitHub hoàn toàn giống với cách mà chúng ta đã tìm hiểu ở các phần trước như các lệnh git fetch, git pull, git push ...

Thực hành làm việc với Repo GitHub

Sau đây sẽ thực hiện một số thao tác cơ bản làm việc với Repo GitHub

1 Clone Repo GitHub

Chạy Git Bash, gõ lệnh để clone Remote Repo GitHub git@github.com:xuanthulabnet/firstproject.git về thành Local Repo lưu tại c:\local\firstproject

$ git clone git@github.com:xuanthulabnet/firstproject.git /c/local/firstproject
Cloning into 'C:/local/firstproject'...
warning: You appear to have cloned an empty repository.

Nó cho biết vừa clone một empty repository vì thực tế Repo GitHub của ta chưa có file nào, chưa có commit nào. Giờ chuyển đến Local Repo xem trạng thái

$ cd /c/local/firstproject/
$ git status
On branch master

2 Tạo 3 commit đầu tiên tại Local

Ta sẽ tạo ra ba thay đổi và thực hiện 3 commit đầu tiên (tạo ra 3 snapshot của dự án ký hiệu C0, C1, C2)

$ touch 1.txt
$ git add .
$ git commit -m"C0"

$ touch 1.txt
$ git add .
$ git commit -m"C0"

$ touch 2.txt
$ git add .
$ git commit -m"C0"

Giờ đã có 3 commit ở Local, (tạo ra 3 file mới)

3 push toàn bộ Local lên Remote Git

Để cập nhật thông tin mới thay đổi từ Local lên Remote GitHub, gõ lệnh $ git push --all hoặc $ git push origin hoặc chỉ cập nhật lên nhánh master $ git push origin master

$ git push origin
Counting objects: 7, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (7/7), 561 bytes | 561.00 KiB/s, done.
Total 7 (delta 1), reused 0 (delta 0)
remote: Resolving deltas: 100% (1/1), done.
To github.com:xuanthulabnet/firstproject.git
 * [new branch]      master -> master

Giờ truy cập vào xem GitHub https://github.com/xuanthulabnet/firstproject sẽ thấy danh sách các file ở nhánh hiện tại master, nó cho biết có một nhánh và ba commit

4 Tạo nhánh mới tên beta và thực hiện 2 commit

$ git branch beta                       #tạo nhánh beta
$ git checkout beta                     #chuyển nhánh beta
$ git rm 3.txt                          #xóa file
$ git commit -m"C3"

$ echo "Day la noi dung cap nhat boi beta" > 2.txt
$ git add .
$ git commit -m"C4"                     #commit cập nhật 2.txt

5 Quay về nhánh master, tạo ra một thay đổi và commit

$ git checkout master
$ echo "Noi dung cap nhat boi master" > 1.txt
$ git commit -m"C5"

6 Push toàn bộ thông tin hai nhánh lên Repo GitHub

$ git checkout beta                     #chuyển nhánh beta
$ git push origin beta                  #push nhánh beta
$ git checkout master                     #chuyển nhánh master
$ git push origin master                  #push nhánh master

Giờ Repo GitHub đã cập nhật 2 nhánh, bạn có thể truy cập website để xem

Ta thấy nó có 2 nhánh, bạn có thể mở 2 nhánh đó ra xem các file, nội dung cập nhật các file và thông tin commit ...

6 Chỉnh sửa file ngay tại GitHub

Bạn truy cập vào nhánh master trên GitHub, trong danh sách file bấm vào link file 1.txt, Bấm vào Edit File (có biểu tượng cái bút). Nội dung file đang có bạn có thêm vào dòng chữ nào đó, ví dụ kết quả sẽ là:

Noi dung cap nhat boi master
Nội dung cập nhật từ GitHub

Cuối cùng yêu cầu GitHub commit thay đổi này, kéo xuống dưới tại box Commit changes gõ thông tin commit, ví dụ C6 - GitHub. Sau đó bấm vào nút màu xanh Commits changes

7 Cập nhật thông tin từ GitHub

Trước tiên fetch mới toàn bộ thông tin

$ git fetch origin

Kiểm tra trạng thái của master

$ git checkout master
$ git status
On branch master
Your branch is behind 'origin/master' by 1 commit, and can be fast-forwarded.
  (use "git pull" to update your local branch)

Nó cho biết Remote có một commit mới. Để tích hợp thay đổi về Local sẽ thực hiện lệnh pull

$ git pull origin master
From github.com:xuanthulabnet/firstproject
 * branch            master     -> FETCH_HEAD
Updating e66d364..edbe3b2
Fast-forward
 1.txt | 1 +
 1 file changed, 1 insertion(+)

Xem lại log

$ git log --oneline
edbe3b2 (HEAD -> master, origin/master) C6 - GitHub
e66d364 C5
299a39d C2
ca3588c C1
42f7e14 C0

Nhánh master ở local đã cập nhật về commit C6 - GitHub, hãy mở thư mục làm việc ra, mở file 1.txt, nội dung của nó đã giống với trên GitHub

Đó là vài thao tác cơ bản làm việc với GitHub, bạn thấy rằng nó hoàn toàn thực hiện như các lệnh Git mà chúng ta đã biết.

Mục lục Git - GitHub

Đăng ký nhận bài viết mới
Remote Branch (Bài trước)