Sau một thời gian dài làm công việc với group trên Github mình rút ra được rất nhiều trải nghiệm từ các bạn lập trình viên trong group . Đặc biệt là những lập trình viên, những nhà tăng trưởng nước ngoài . Từ đó gia tăng cấp độ code và tư duy cho một Project của mình được tốt hơn . Nên nay mình xin chia sẻ hướng dẫn sử dụng github căn bản tới đầy đủ nhất.
I. Github là gì ?
Github còn được gọi là social network dành cho developer đi vào hoạt động tháng 2 năm 2008, là một dịch vụ dùng nền móng quản lý phân tán GIT giúp người dùng lưu trữ source code cho các dự án. chức năng của GIT như bài trước mình vừa mới nói, nó có mọi chức năng của một source control giống như SVN và hơn thế nữa.
Github được viết bằng Ruby on Rails. GitHub phân phối dịch vụ thương mại và cả tài khoản free cho các dự án nguồn mở. Theo khảo sát của người dùng Git vào năm 2009, Github hiện đang là server Git lưu trữ source code thông dụng nhất hiện giờ (Ngoài ra, Gitorious http://gitorious.org cũng là server Git hoạt động giống Github được quan tâm đến).
439000 developer tạo hơn 1 triệu 350 ngàn repositories là một số lượng khá thích thú, cùng với một số KH to của github như Twitter, Facebook, Yahoo … cho thấy tính thông dụng của Github, cũng như cộng đồng lập trình thế giới tính nhiệm nó ntn.
II. chức năng API của Github:
Ngoài những chức năng tuyệt vời của nền móng thống trị source phân tán GIT nói chung (Chúng ta sẽ nói ở một bài cụ thể khác), Github còn hỗ trợ người dùng những chức năng cần thiết thông qua API sau:
1) API lớn cải tiến The Repository via HTTP: GitHub hỗ trợ user đủ nội lực edit file source code từ web browser thông qua HTTP – post
2) API to Access Compare Views (Giới thiệu tính năng Compare Views https://github.com/blog/612-introducing-github-compare-view): chức năng này hỗ trợ người dùng đánh giá và so sánh code của dự án thông qua công việc nhìn thấy các commit, comments, các dạng không giống nhau giữa 2 version của file code … tính năng này cũng thông qua HTTP – post, user có thể thực hiên trên website browser.
3) API lớn Manage Service Hooks: GitHub support chức năng mở rộng post-receive hooks http://help.github.com/post-receive-hooks. tính năng này cho phép người dùng đăng ký 1 URL của mình (như là một website hook) cho các respository. Bất cứ khi nào có người push source code của họ lên repository, GitHub thông báo cho bạn biết bằng cách post thông tin (dạng JSON) về lần push đó khi đến URL mà bạn đang đăng ký trước đó. Còn rất nhiều API hữu ích không giống, các bạn đủ nội lực xem toàn bộ tại đâyhttp://develop.github.com
III. bí quyết làm việc với GitHub:
làm công việc với GitHub nói riêng hay nền móng GIT nói chung có 2 workflow chính là local workflow và server workflow.
Bạn có thể làm mọi chuyện refresh source code ở local, sau khi vừa mới cải thiện xong, bạn sẽ commit nhưng thay đổi đó lên server và bản lên server phải là bản hoàn chỉnh một tính năng nào đó, hoặc fix bug xong, test xong hoặc ít nhất bản đó phải chạy được. không được commit code dở dang, chưa qua check lên repository server sẽ khiến ảnh hưởng đến các member khác, trái lại bạn đủ sức sử dụng điều đó ở repository local (Bạn cũng có thể tạo một branch ở server cho việc commit code dở dang hay tính năng chưa hoàn thành như từng làm với SVN, nó sẽ chiếm space ở server cũng như sử dụng mất thời gian của bạn vào việc tương tác gắn kết với server, vậy tại sao không commit nó lên repository local nhỉ, vừa mau thao tác lại k mất space của server.)
xây dựng rộng: từ repository của github ta đủ nội lực theo cách thức của Git tạo bản build cho production site (trên đây cũng là một repository server) bằng cách push refresh (đã qua check kỹ càng) lên nó. Khi tương tác với repository server (cập nhật hay thay đổi) GITHUB đòi hỏi mã chứng thực “Bạn là ai” thông qua so sánh SSH key ở local của bạn và SSH key ở trên server tương ứng với tài khoản mà bạn đã đăng ký với GITHUB trước đó.
1) sử dụng việc với repository ở local: với 2 command thường dùng là git add và git commit
git add: add file đang refresh vào stage git commit: commit các file đang add vào stage lên repository ở local tuy nhiên bạn xem một số command khác
2) sử dụng công việc với repository ở server github:
Sau khi đã quậy tè le ở local , cuối cùng khi có một bản ổn định và hoàn tất (có thông qua test) ta sẽ quyết định cải tiến nó lên repository server với: -push: push refresh từ repository local lên repository server -fetch: update thay đổi từ repository server về repository local -pull/rebase: sao chép source code từ server về local workspace (tương đương checkout của SVN)
IV. hướng dẫn sử dụng GitHub (Trên linux):
1. cài đặt công cụ
xây dựng terminal :
sudo apt-get install git1.1 . Tạo một account github
Lên trang http://github.com để tạo một tài khoản
1.2 . Khi tải kí account xong ta thường xuyên làm công việc với Terminal
git config --global người dùng.name "Tên của bạn" git config --global user.email "[email protected]"note : mail config phải là mail bạn vừa tải kí
VI. Các thao tác với Git và Github
0. Repo
Git là một tool để quản lý mã nguồn, nhưng tôi chẳng hề là một coder nên tôi sẽ không sử dụng Git theo cách mà các coder hay dùng. Tôi sử dụng git và github để lưu trữ các file cấu ảnh của mình, các script, viết các bài hướng dẫn cách thức, các bản nháp,… Các repo là những kênh tôi phân loại, lưu trữ những thứ bên trên và nó được lưu cả ở máy trạm và ở server github. Để làm công việc với repo thì bạn phải hiểu về nó. Một số điều bạn cần biết là:Ba hiện trạng của một repo:
như hình ở trên bạn có thể thấy có 3 điểm cần lưu ý:
- Working dir: đây là kênh bạn thực hiện các thao tác chỉnh sửa với file mã nguồn của mình, nó đủ nội lực là eclipse, netbean, notepad++,…
- Stagging area: những sự refresh của bạn với file mã gốc được lưu lại, như bạn ấn Save trong một file notepad.
- Git directory: nơi lưu trữ mã nguồn của bạn (ở đây là github)
Tương ứng với 3 vị trí này ta có các hành động:
- Add: lưu file thay đổi (mang tính cục bộ) – tương ứng với câu lệnh git add
- Commit: Ghi lại hiện trạng refresh tại máy local (ví dụ như bạn đủ sức ấn Save nhiều lần với file README.md nhưng chỉ khi commit thì hiện trạng của lần ấn Save cuối cùng trước đó mới được lưu lại) – tương ứng với câu lệnh git commit
- Push: Đẩy những cải thiện từ máy trạm lên server – tương đương lệnh git push
- Pull: đồng bộ trạng thái từ server về máy trạm – tương đương lệnh git pull
1. setup
1.1. Linux
Với OS là Ubuntu:apt-get install gitVới OS là Fedora, Centos
yum instal gitCác thiết lập ban đầu:
- Bạn quan trọng lập tên và email của mình để mỗi khi commit lên server sẽ nhận biết được ai commit lên vì một repo đủ sức có nhiều người tham dự.
git config --global user.name "XDAVN" git config --global người dùng.email [email protected]
- chọn trình biên soạn thảo mặc định, đủ nội lực là vi, vim, nano,…
git config –global core.editor vi
- Liệt kê các thiết lập:
git config --listliên kết với account github bằng SSH
ssh-keygen -t rsaEnter file in which to save the key (/root/.ssh/id_rsa): [Press enter]
Enter passphrase (empty for no passphrase): [Press enter]
Enter same passphrase again: [Press enter]
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
Nếu bạn nhập passphrase thì hãy nhớ pass này!Kết quả:
ls ~/.ssh/ id_rsa id_rsa.pub known_hosts ssh-agent -s ssh-add ~/.ssh/id_rsa cat ~/.ssh/id_rsa.pubsao chép đoạn mã này
Truy cập đường kéo sau https://github.com/settings/ssh (đảm bảo bạn vừa mới đăng nhập vào github), chọn Add SSH key, đặt tên cho key này tại tit và paste nội dung vừa sao chép vào ô Key
Lúc này bạn đã đủ sức commit lên github tại máy local mà k cần nhập username và password.
1.2. Windows
down tại địa chỉ: https://windows.github.com/cài đặt bình thường, yêu cầu phải có .NET 4.5
Giao diện của chương trình:
Thêm tài khoản Github:
- click tool and options (hình bánh răng cạnh biểu tượng Sync) lựa chọn options, Add tài khoản. Khai báo username và password trên github.
- Tại danh mục Configure git thêm Tên và email của mình
bấm cập nhật
2. Thao tác với Repo
2.1. trên Linux
2.1.1. Tạo mới
Tạo một repo mới ở trên trang github.com
2.1.2. Clone
Clone repo đó về bằng một trong các hướng dẫn sau:Linux
SSH: git clone [email protected]:ducnc92/demo1.git
hoặc: git clone [email protected]:ducnc92/demo1.git /opt/demo để clone vào thư đề mục /opt/demo
đối với cách thức này các bạn cần nhập passphrase của ~/.ssh/id_rsa (có thể k cần nếu bạn không đặt passphrase)
HTTPS: git clone https://github.com/ducnc92/demo1.git
hoặc: git clone https://github.com/ducnc92/demo1.git /opt/demo để clone vào thư mục /opt/demo
Để lấy các link SSH, HTTPS này ta làm giống như sau: click các hyperlink HTTPS hoặc SSH rồi nhấn sao chép to clipboard.
Ở đây tôi dùng lệnh git clone [email protected]:ducnc92/demo1.git
Lúc này trong thư đề mục hiện giờ sẽ có thêm thư mục demo1 chứa các file trong repo ở trên github.
Chuyển vào thư đề mục này:
cd demo1/ lsLúc này sẽ thấy trong thư đề mục này có file README.md. Để sửa file này ta có thể dùng bất cứ trình biên soạn thảo nào, chẳng hạn vi, nano, gedit,…
vi README.mdthích hợp nội dung giống như sau:
Xin chao! Toi la LinhPhi.Tạo một thư danh mục mới, chẳng hạn tên là script để chứa các script của tôi.
mkdir scriptTạo một script mới trong thư đề mục đó.
vi script/script1.shta sửa code như sau
#!/bin/sh echo "Hello Python Vietnam" sleep 10bằng hướng dẫn tương tự các bạn đủ nội lực tạo thêm nhiều thư mục, file hướng dẫn, cấu hình, script,… Tùy ý
2.1.3. Add, commit, push
Để thực hiện hành động add ta sử dụng lệnh saugit add README.md để add file README.md hoặc git add * để add tất cả các file hiện có.
Để thự hiện hành động commit file README.md ta thực hiện lệnh
git commit README.md hoặc git commit * để commit toàn bộ.
ta nên thêm tham số -m để ghi lại một cmt cho hành động đó
git commit README.md -m "ducnc sua doi"Lúc này các refresh của bạn đang được lưu lại ở trên máy cục bộ. Để đồng bộ lên server Github ta thực hiện lệnh:
git push origin master
=> nhập passphrase (nếu bạn đặt passphrase ở mục 1.1.) với mẹo clone ssh hoặc nhập username, password nếu clone bằng https
Lúc này trở lại trang github.com và xem repo script lúc đầu sẽ thấy các commit của ta đang được đẩy lên.
Một mẹo không giống nếu bạn không muốn thực hiện clone về máy giống như bước trên thì bạn có thể làm như sau:
- Tạo một repo mới ở trên github.com mà k tạo file README.md (giả sử ở đây là repo demo2)
- Tại máy local tạo một thư danh mục để chứa repo mới này. Ví dụ:
mkdir /opt/demo2 cd /opt/demo2
- Thực hiện tạo các file, thư đề mục như ý muốn. Sau đó thực hiện add, commit, push tương tự như trên Nhưng ở đây cần thêm lệnh git remote add origin $git-url trước khi push. tham khảo ví dụ sau:
vi README.md git add README.md git commit README.md hoặc git commit README.md -m noi dung git remote add origin [email protected]:ducnc92/demo2.git git push origin masterSau đó nhập passphrase(nếu cần) hoặc username + password (nếu sử dụng SSH)
2.1.4. Pull
Giả sử ở trên server github của bạn có những refresh mà máy local chưa cải tiến những thay đổi đó. Bạn thực hiện lệnh sau:cd cd /opt/demo1/ git pull2.2. ở trên Windows
2.2.1. Tạo một repo mới
Tạo repo ở trên github.com tự giống như đề mục 2.1.1.
Tạo repo bằng phần mềm Github
- click dấu cộng, chọn tab Create, đặt tên và lựa chọn đường kéo cho repo mới
- không những thế repo mới sinh ra mới chỉ có ở máy trạm, tại danh mục Other. chọn chuột phải vào repo đó và chọn Open in Explorer để sửa nội dung của repo này.
- Sau khi chỉnh sửa xong, để đẩy repo đó lên github.com ta click Publish this repository và thực hiện như ảnh sau. quan tâm cần lựa chọn Organization đặt repo này.
2.2.2. Clone
click dấu cộng, lựa chọn tab Clone, lựa chọn đơn vị mong muốn và lựa chọn repo cần clone
Để chỉnh sửa nội dung của repo này ta chọn chuột phải vào nó và chọn Open in Explorer
Lúc đó chương trình Windows Explorer sẽ mở ra thư mục chứa repo của github, bạn đủ sức chỉnh sửa các file trong này, tạo xóa thư mục,… Một phương pháp bình thường.
2.2.3. Add, commit, push, pull
Trở lại với chương trình Github ta sẽ thấy dòng uncommited changes tại repo ta vừa sửa. Bạn hãy điền vào đó comment và ấn commit lớn master
Lúc này sự cải thiện của bạn với mã nguồn vừa mới được ghi lại trên máy local, để đồng bộ nó lên server github bạn hãy ấn vào biểu tượng Sync ở góc ở trên cùng bên phải.
Sau khi đồng bộ xong, quay trở lại repo ở trên trang github.com.
Để đồng bộ những refresh ở trên github.com về máy local (pull) ta cũng click vào biểu tượng Sync giống như bên ở trên.
3. Thao tác với đơn vị trong Github
Để tạo một group cho nhiều người cùng làm công việc ta làm giống như sau:
- Truy cập URL: https://github.com/settings/organizations, chọn New Organizations
- Đặt tên và mail cho tổ chức
Tại đề mục Choose the organization’s plan chọn Open Source để miễn phí, nhưng lúc này các Repo trong tổ chức sẽ là public.
- Mời các member cho đơn vị
Lúc này vào profile của bạn sẽ thấy tại mục Organizations có đơn vị mới vừa tạo. Để cấu hình đơn vị này ta click thẳng vào nó.Ở đây tôi sẽ tạo một team mới giống như hình sau:
Các thành viên của team này có quyền write với các repo của đội nhóm.Với 3 mức: Read Access, Write Access, Admin Access Github cho phép chúng ta phân quyền tới các thành viên của group.
Để mời một user không giống vào đội nhóm, ta click đội nhóm đó và tìm kiếm tên của user cần tìm
Sau đó nền móng sẽ yêu cầu bạn nhập password để xác thực, nếu sự phát triển, một email công nhận sẽ được send đến người được mời và người này sẽ xác nhận có tham gia vào đơn vị hay k.
Để tạo một repo cho đơn vị, ta chỉ cần click vào tổ chức đó, sau đó lựa chọn Create new Repostory. Các hành động clone, add, commit,… sử dụng giống như bình thường.
4. Thao tác với nhánh (branch)
Sẽ cập nhật và bổ sung sau5. Issues
Giả sử bạn đang theo dõi repo của tôi và thấy có một số chỗ cần sửa đổi, bạn có thể comment ý kiến của mình vào Repo đó. Sau đó người quản trị sẽ nhìn thấy xét, refresh và trả lời bạn.Để làm công việc này bạn cần vào repo đó, click vào Issue. gợi ý như hình sau:
Sau đó lựa chọn New issue (màu xanh) để tạo một issue mới.
Lúc này tại Repo của người quản trị sẽ thấy một Issue mới, người quản trị đủ sức click vào Issue này để xem, sau đó xem xét sửa đổi, cmt lại. Khi sửa đổi hoàn tất thì sẽ đóng issue đó lại.
Bằng mẹo tạo issue, bạn đủ sức tải các câu hỏi, thắc đắt tiền của mình cho chủ của repo đó.
tổng kết
post ở trên tôi tổng hợp lại những kiến thức thu được khi sử dụng git và github cho công việc của tôi (sys admin), hi vọng nó giúp các bạn một phần nào đó.tất nhiên post còn có nhiều thiếu sót, mong các bạn thông cảm và send feedback cho tôi để hoàn thiện thêm.
Xin chân tình cảm ơn!
Register lớn the forum today to experience the full range of features. toàn bộ free !
Login or Register
- github
- github là gì
- hướng dẫndùnggithub
- grouptrêngithub


V. Ngôn ngữ Markdown
Ngôn ngữ này khá không khó khăn, bạn đủ nội lực đọc tại đây để biết cách sử dụng.Nhưng với tôi, tôi không dùng hết từng ấy thứ thành ra tôi chỉ nhớ một số cái tôi hay sử dụng, mẹo tôi dùng giống như sau:
Tạo một file có tên bất kỳ với đuôi .md. đủ sức dùng notepad, notepad++, vi, nano,… Hay bất cứ thứ gì mà bạn muốn.
Một số mẹo tôi hay dùng để viết:
1. Thẻ tiêu đề
Markdown sử dụng kí tự # để khởi đầu cho các thẻ tittle, đủ sức dùng từ 1 đi đến 6 ký tự # liên tiếp. cấp độ riêu đề giảm dần từ 1 khi đến 6Tùy mục tiêu và ý like bạn có thể dùng cách này để thể hiện các chỉ danh mục khác nhau.
Ví dụ:
#1.Tiêu đề cấp 1
1.Tiêu đề cấp 1
##2.Tiêu đề cấp 22.Tiêu đề cấp 2
######6.Tiêu đề cấp 66.Tiêu đề cấp 6
2. Chèn link, chèn hình
Để chèn hyperlink bạn chỉ cần paste luôn linh đó vào file .mdhttps://github.com
https://github.com
Hoặc bạn cũng đủ nội lực sử dụng cú pháp sau để thu ngắn đường kéo của link [Github](https://github.com)
hiệu quả là:
GithubĐể chèn ảnh thì bạn hãy sử dụng cú pháp sau:
Tôi thường sử dụng công cụ Lightshot để chụp hình màn ảnh và up ảnh đó lên trang http://i.imgur.com/ để get đường dẫn ảnh mang vào Github
Hai tool này khá dễ sử dụng, bạn chỉ cần chụp màn hình bằng Lightshot ấn Ctrl + C để copy và Ctrl + V để paste vào trình duyệt tại website http://i.imgur.com/
3. Ký tự in đậm, in nghiêng
- Để in đậm một đoạn text bạn chỉ cần làm giống như sau:
**từ cần in đậm**
từ cần in đậm
- Để in nghiên một đoạn text bạn chỉ cần sử dụng như sau:
*từ cần in nghiêng*
từ cần in nghiêng
4. Trích kéo, bo chữ
Để bo một đoạn text thì bạn chỉ cần dùng cú pháp sau:`đoạn cần bo`
kết quả là: đoạn cần bo
Để sử dụng nổi bật một đoạn, chẳng hạn như một đoạn shell hay file cấu ảnh bạn đủ sức dùng cú pháp giống như gợi ý sau:
“`sh
auto eth0
iface eth0 inet static
ipaddress 10.10.10.10
netmask 255.255.255.0
gateway 10.10.10.1
dns-nameservers 8.8.8.8
“`hiệu quả như sau:
tự động eth0
iface eth0 inet static
ipaddress 10.10.10.10
netmask 255.255.255.0
gateway 10.10.10.1
dns-nameservers 8.8.8.85. Gạch đầu dạng
Để dùng gạch đầu dạng bạn chỉ cần sử dụng cú pháp sau:– Gạch đầu định dạng thứ nhất
- Thụt với đầu dạng 1
- Thụt với đầu định dạng 1
– Gạch đầu định dạng thứ hai
- Thụt với đầu định dạng 2
- Thụt với đầu thể loại 2
- Gạch đầu dòng thứ nhất
- Thụt với đầu loại 1
- Thụt với đầu thể loại 1
- Gạch đầu định dạng thứ hai
- Thụt với đầu dạng 2
- Thụt với đầu định dạng 2
6. Tạo bảng
Bạn đủ sức sử dụng cú pháp sau để tạo bảng:| Cột 1 Hàng 1 | Cột 2 | Cột 3| Cột 4 |
|————–|——-|——|——-|
| Hàng 2 | 2 x 1 | 2 x 2 | 2 x 3 | 2 x 4 |
| Hàng 3 | 3 x 1 | 3 x 2 | 3 x 3 | 3 x 4 |
| Hàng 4 | 4 x 1 | 4 x 2 | 4 x 3 | 4 x 4 |Kết quả:
Cột 1 Hàng 1 Cột 2 Cột 3 Cột 4
Hàng 2 2 x 1 2 x 2 2 x 3
Hàng 3 3 x 1 3 x 2 3 x 3
Hàng 4 4 x 1 4 x 2 4 x 3Mẹo:
- sử dụng trang http://markdownlivepreview.com/ paste vào đó đoạn markdown bạn viết và xem trước để chỉnh sửa cho thêm vào.
- Bạn cũng đủ nội lực sử dụng những đoạn markdown của người khác đang viết trước để tham khảo.
như vậy bạn vừa mới có thể trình bày github của mình một cách sáng sủa bằng markdown.
Nguồn: https://forum.xdavn.com