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.