Nội dung
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype
Github là gì? Dân lập trình có vẻ khá thân thuộc nhưng những ai không quan tâm đến nó cũng không biết nó là gì đâu, nó cũng giống như SVN là một source version control. Github còn được gọi là Code social network dành cho developer đi vào hoạt động tháng 2 năm 2008, là một dịch vụ lưu trữ source code cho các dự án sử dụng hệ thống quản lý phân tán GIT. Github sinh sau đẻ muộn nhưng có đầy đủ tính năng như SVN và hơn thế nữa.
Theo khảo xát vào năm 2009, Github hiện là server git lưu trữ source code phổ biến nhất hiện nay. Hệ thống này được viết bằng Ruby on Rails, hiện tại github cung cấp dịch vụ thương mại và cả tài khoản miễn phí cho các dự án nguồn mở.
Ngoài Github, còn có Gitorious cũng là server hoạt động giống github, khá được chú ý đến.
Cách thức làm việc với github
Trước tiên bạn cài git trên windows, vào địa chỉ http://git-scm.com/downloads nhấn vào phiên bản dành cho windows. Đây là file cài đặt exe , bạn tiến hành cài đặt git như phần mềm bình thường. Sau khi cài xong, mở CMD lên gõ lệnh:
git --version
Nếu không thông báo lỗi và trả về phiên bản của git thì bạn đã cài đặt thành công. Ví dụ mình đang dùng git 1.9.4
git version 1.9.4.msygit.0
Làm việc với Github nói riêng hay hệ thống GIT nói chung có 2 workflow chính là local workflow và server workflow.
Bạn có thể thay đổi chỉnh sửa code thoải mái ở local (tức là lưu file code trên máy tính của bạn), sau khi thay đổi xong bạn sẽ đồng bộ với tài khoản github trên server. Thuật ngữ này gọi là “commit“. Sau khi đã có bản code hoàn chỉnh một tính năng nào đó, hoặc fix bug xong hay bản có thể chạy được thì hãy commit lên server github. Chú ý: không được commit code dở dang còn đang mắc lỗi hoặc chưa qua test lên repository server sẽ làm ảnh hưởng tới thành viên khác. Tuy nhiên bạn cũng có thể tạo một repository để up code dở dang chưa hoàn chỉnh vào đó, với nhánh này thì không được public mà chỉ bạn có quyền xem và chỉnh sửa.
Thuật ngữ
- clone repository: tạo một bản sao của một repository đã tạo trước đó.
- Commiting to the repository: sau khi thêm các file vào từ local vào hàng đợi (stage), bạn có thể commit và upload lên Git repository.
Khởi tạo git local
Bạn tạo một thư mục mới để cho phép git làm việc với thư mục này. Để làm điều này, bạn vào start -> run gõ “cmd” và nhấn enter. Tại giao diện lệnh trỏ vào thư mục sẽ khởi tạo git local, chạy lệnh sau:
> git init
Lệnh này sẽ tạo folder ẩn có tên “.git” vào thư mục này, đó là những file repository cần thiết giúp bạn có thể tải các files có trong folder lên git server.
Dự án code của bạn sẽ thiết kế các tệp tin trong folder trên, sau đó tiến hành tải lên server sau khi có files code hoàn chỉnh. Thêm một hoặc tất cả các files vào hàng đợi để chuẩn bị sẵn sàng đưa lên github, sử dụng lệnh sau sẽ đưa tất cả các files mới thay đổi vào stage.
git add .
Tiến hành commit các files này.
git commit -m "chú giải"
Nhập lý do trước khi tải code lên repository server, dòng này sẽ hiển thị trên repository. Có thể là thông báo cập nhật fixed lại lỗi của bản trước đó có tác dụng thông báo cho người dùng biết và sử dụng code của bạn nhiều hơn.
Cuối cùng upload thay đổi lên server.
git push origin master
Đó là nguyên lý hoạt động cơ bản của git, phần tiếp theo đây mình sẽ đi sâu chi tiết về lệnh git và sử dụng Git với giao diện.
Sử dụng Git với giao diện
Sau khi cài xong, nhấn start gõ từ “git” bạn sẽ thấy có 2 ứng dụng “Git Bash” và “Git GUI”. Một bản sử dụng giao diện lệnh và một bản tương tác với các repository vendors như github, Bitbucket và Beanstalk thông qua giao diện.
Thiết lập SSH Keys
Cài đặt ssh-keys cho máy tính của bạn rất đơn giản, bạn mở Git GUI lên. Nhấn vào Show SSH Key dưới menu Help.
Rất có thể ssh-key đã tồn tại trên máy tính của bạn trước đó, bạn có thể xóa nó đi hoặc backup lại key nếu không biết chính xác do đâu mà có.
Thực hiện điều này, bằng cách xóa đi tất cả các files trong thư mục C:\Users\
. Thay < username > là tên user của máy tính bạn. Nếu bạn chưa biết user này, mở start->run gõ cmd , và nhập dòng lệnh sau:
echo %username%
Để Tạo lại ssh key, bạn có thể nhấn vào nút Generate Key. Nếu có thể sẽ cần yêu cầu nhập passphrase (mật khẩu bảo mật). Hãy nhớ chuỗi mật khẩu này, bạn sẽ cần dùng lần sau.
Lệnh tạo ssh keys trên giao diện tương ứng với command line:
ssh-keygen -t rsa
Cài đặt SSH Key trên Hosted Git Repository
Trong bài này mình sẽ sử dụng Github làm ví dụ. Bạn cần khai báo chuỗi SSH keys đã thiết lập trên máy tính của bạn vào tài khoản trên github. Mục đích để làm gì?
Khi thực hiện lệnh git đẩy dữ liệu lên github, git sẽ lấy ssh-key có trong máy tính và so sánh trên hệ thống github accounts, nhờ chuỗi key này mà phát hiện ra tài khoản github của bạn. Nhờ đó mà các files được push lên đúng repository trên github server.
Nhấn vào “Copy to Clipboard”, truy cập vào settings chọn tab SSH keys trên github tại địa chỉ https://github.com/settings/ssh. Thêm ssh key bằng cách nhấn vào Add SSH key.
Trường “Title” điền tên nhận dạng SSH key, field này không quan trọng chỉ để dễ nhớ. Tuy nhiên bạn nên đặt tên có liên quan đến ssh-key mà bạn sẽ sử dụng đến, ví dụ: WindowsPc”, “Macbook”, “Linux”
Làm việc với Git
Như vậy lệnh git trên máy tính của bạn đã có thể bắt đầu kết nối vào github repository. Chúng ta sẽ cần tạo một repository để push code lên đó.
Tạo Repository trên github thì quá thân quen với những developer rồi, Tại trang chủ github.com, giả sử bạn đã đăng nhập tài khoản vào github, nhấn vào nút New repository bên phải để tạo mới repository. Nhập tên và mô tả cho repo, nếu bạn dùng github miễn phí thì giữ nguyên trạng thái public, trạng thái này cho phép người khác có thể tìm thấy code repository này của bạn. Chế độ bảo vệ code private nếu dự án của bạn muốn bảo mật không để lộ code ra bên ngoài, tính năng này bạn phải trả phí.
Reposity này mình làm demo do đó không checkbox vào option “Initialize..”, cài đặt này sẽ tạo file hướng dẫn README cho repository. Kết thúc nhấn Create repository.
Tạo Local Repository
Bây giờ đến phần làm code của bạn rùi, tạo mọi files sử dụng cho repository, bạn sẽ phát triển code của mình trên máy tính sau khi hoàn chỉnh code hay bản code đã có thể hoạt động thì bắt đầu đưa lên repository vừa tạo ở trên.
Tại giao diện Git GUI, nhấn vô “Create New Repository”.
Lựa chọn thư mục để tạo nội dung cho repository trên máy tính. Chú ý: đường dẫn folder này phải chưa có trước đó, chọn đường dẫn thư mục và nhập tên cho repository sẽ tạo trên máy tính (local). Giống như sau:
Địa chỉ git của repository có dạng [email protected]:Username/repository-name.git
. Ví dụ: tôi có repository tên “test-repo” trên tài khoản github “hoangsoft90”, thì repository URL là:
[email protected]:hoangsoft90/test-repo.git
Sử dụng địa chỉ repository này để push các files lên repository server.
Sử dụng Git GUI Client
Bạn có thể làm việc với các lệnh git bằng command line hoặc thao tác trên giao diện. Tiếp theo sau đây mình sẽ hướng dẫn bạn cách sử dụng phần mềm Git GUI để tải code lên repository có sẵn. Chỉ có 3 bước đơn giản là: staging changes, commits, và pushes.
Khi bạn di chuyển các files vào local repository, ban sẽ thấy các files này trong cửa sổ “Unstaged Changes”. Phần này chúng ta hiểu đơn giản đây là các files mới sửa đổi của repo, nếu chưa thấy xuất hiện bạn nhấn vào nút Rescan. Cửa sổ này cũng thông báo trạng thái của files đã xóa, hoặc mới cập nhật..Cứ nhấn vào Rescane để xem những sửa đổi của folder local repository.
Nút rescan tương ứng với lệnh git status
Nhấn tiếp vào Stage Changed, để đưa tất cả các files trong mục Unstaged Changes vào hàng đợi Commit. Thao tác này tương ứng với lệnh git add .
Hướng dẫn Commit
Các files đã nằm trong mục Staged Changed sẽ được commit. Nhập chú giải cho lý do commit lần này vào field “Commit Message” sau đó nhấn vào nút Commit như hình dưới.
Bạn cũng có thể sử dụng lệnh git cho tác vụ này:
git commit -am "commit comment"
Bắt đầu Push lên repository server
Trước khi người dùng internet có thể truy cập vào các code của bạn, chúng ta cần đẩy (push) tất cả các files có sửa đổi đã được commit lên Hosted repository như github, Bitbucket..
Trước khi có thể làm điều này, chúng ta thêm địa chỉ git của repository đã tạo trên github vào Git GUI. Từ menu Remote của phần mềm chọn vào Add…. Điền Name và Location trong cửa sổ Dialog hiện ra, trường Name hầu hết sẽ điền là “origin”. Field này có tác dụng thay cho địa chỉ, mỗi một địa chỉ git URL sẽ có một tên riêng không trùng với nhau. Bạn sẽ thấy có dùng tên của địa chỉ Git repository trong câu lệnh quen thuộc git push.
git push origin master
Thao tác này tương đương với lệnh git remote add < remote-name > < git-repository-url >
. Nhấn Add để hoàn tất.
Tại sao mình lại lấy tên “origin” cho remote git, vì khi bạn nhấn lệnh Push mặc định option remote vào repository luôn trỏ vào tên “origin”. Tiếp tục nhấn vào Push để upload những files đã commited.
Tiếp theo, bạn sẽ nhận được thông báo xác nhận, đừng lo lắng cửa sổ này chỉ hiển ở lần push đầu tiên. gõ vào “yes” và nhấn OK.
Bạn có thể nhận tiếp thông báo nhập passpharse của SSH Key, có nhớ ở phần tạo ssh key ở trên không? chuỗi passpharse sẽ được dùng tại bước này.
Git UI có yêu cầu một lần nhập passpharse cho lần upload code đầu tiên, bạn cũng không cần lo lắng phải nhập lần sau.
Nếu push lên github repository thành công, bạn sẽ nhìn thấy dòng thông báo giống thế này.
Clone một Remote Repository đến Local Repository trên máy tính
Các bước để download một remote Repository về máy tính, bạn nhấn vào liên kết “Clone Existing Repository” trên giao diện Git GUI. Mục Source Location nhập địa chỉ git của Repository có trên server và chọn thư mục lưu trên máy tính cho Target Directory. Giống như cách tạo local repository như ở trên. Các files sẽ tải về sau khi Nhấn clone và bạn có thể làm việc tiếp tục với repository này, sau đó lại commit và push bản mới cập nhật lên Host Repository.
Bạn cũng có thể sử dụng lệnh git clone thay vì thực hiện trên giao diện Git GUI. Mở cmd hoặc Git Bash gõ lệnh sau:
git clone https://github.com/<t ên username>/</t><t ên repo>.git </t>
Sau khi tải về hoàn tất, bạn vào explorer theo đường dẫn tới tên của repository. Tại đây có thể xem sửa xóa files tùy ý (lưu ý không đụng vào folder .git nhá).
Một số dịch vụ Git Repositories
- Github – Unlimited Free Public Repositories
- Bitbucket – Unlimited Free Public and Private Repositories
- Beanstalk – Private Git with Great FTP Deployments
Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên Twitter và Facebook
- shares
- Facebook Messenger
- Gmail
- Viber
- Skype