Git là gì, Tại sao sử dụng Git ? Git là một phần mềm quản lý source như SVN dùng để quản lý và kiểm tra các phiên bản mã nguồn khác nhau trong quá trình phát triển mã nguồn. Nó có rất nhiều điểm hay: phân tán, không cần kết nối với Central Repository khi commit Đặc biệt nó đã thay đổi cách các lập trình viên chia tách và nhập các nhánh phần mềm. Trong khi với svn, việc này luôn là ác mộng vì các xung đột trong quá trình tách/nhập, còn với Git việc này quá dễ dàng.
Nguyên tắc quản lý code trên Git Nhánh Master, nhánh này lưu trữ trên đó là phiên bản chính thức mới nhất đang được phát hành. Nhánh Develop là nhánh được cập nhật liên tục các đóng góp của tất cả mọi người ở mọi thời điểm. Nhánh này sẽ tiếp nhận các đóng góp của mọi người gửi đến thông qua việc tiếp nhận Pull Request cũng như tiếp nhận việc nhập các nhánh khác vào. Khi nhánh Develop đạt độ chín mùi, nó sẽ được nhập vào nhánh Master đồng thời được dán nhãn phiên bản.
Cài đặt Tải git về cho OSX: https://code.google.com/p/git-osx-installer/downloads/list?can=3 Tải git về cho Windows http://msysgit.github.io/ Tải git về cho Linux http://git-scm.com/book/en/Getting-Started-Installing-Git
Cấu hình thông của bạn Hai thông tin bắt buộc mà bạn luôn luôn phải khai báo đó là tên và địa chỉ email. Mỗi commit của bạn đều sẽ sử dụng thông tin này. Để cấu hình, nhập: git config --global user.name "Vu Thao" git config --global user.email [email protected]
Sao chép (clone) một repository Để clone 1 repository có sẵn ở trên máy cục bộ, bạn hãy sử dụng dòng lệnh sau: Nếu repository đó ở máy chủ khác thì bạn hãy gõ dòng lệnh sau: git clone /đường-dẫn-đến/repository/ git clone tênusername@địachỉmáychủ:/đường-dẫn- đến/repository
Thêm (add) & commit Bạn có thể đề xuất thay đổi (thêm nó vào chỉ mục Index) bằng cách Đây là bước đầu tiên trong quy trình git cơ bản. Để thật sự commit những thay đổi, bạn sử dụng Bây giờ thì tập tin đã được commit đến HEAD, nhưng chưa phải trên thư mục remote. git add git add * git commit -m "Ghi chú Commit"
Nhánh Các nhánh (branches) được dùng để phát triển tính năng tách riêng ra từ những nhánh khác. Nhánh master là nhánh "mặc định". Sử dụng các nhánh khác khi đang trong giai đoạn phát triển và merge trở lại nhánh master khi đã hoàn tất.
Đ y (push) các thay đ i ẩ ổ Nếu bạn chưa clone một repository hiện có và muốn kết nối repository của bạn đến máy chủ remote, bạn phải thêm nó với Bây giờ bạn đã có thể đẩy các thay đổi của mình vào máy chủ đã chọn git remote add origin
Nhánh Tạo một nhánh mới và đặt tên là "feature_x" và chuyển qua nhánh đó (từ master) bằng cách git checkout -b feature_x Trở lại nhánh master: git checkout master Xóa nhánh feature_x đó lần nữa git branch -d feature_x Đẩy nhánh đó đến remote repository git push origin
Cập nhật & trộn (update & merge) Để cập nhật repository cục bộ của bạn và commit mới nhất, thực thi Để trộn một nhánh khác vào nhánh đang hoạt động (vd: master), sử dụng git checkout -b feature_x git merge
Gắn nhãn (tagging) Bạn tạo tag mới tên là1.0.0 bằng cách chuỗi 1b2e1d63ff là 10 ký tự đầu tiên của mã commit (commit id) mà bạn muốn tham chiếu đến bằng nhãn của bạn. Bạn có thể lấy mã commit với lệnh git tag 1.0.0 1b2e1d63ff git log
Thay thế các thay đổi cục bộ Trong trường hợp bạn làm sai điều gì đó, bạn có thể thay thế các thay đổi cục bộ bằng lệnh Nếu bạn muốn hủy tất cả thay đổi và commit cục bộ, lấy về (fetch) lịch sử gần đây nhất từ máy chủ và trỏ nhánh master cục bộ vào nó như sau: git reset HEAD -- git checkout -- git fetch origin git reset --hard origin/master
FOOTER Tài liệu tham khảo Tại sao sử dụng Git http://wiki.nukeviet.vn/programming:vcs:git Nguyên tắc quản lý kho code http://wiki.nukeviet.vn/programming:github_rule Ebook git Pro http://git-scm.com/book/vi Sổ tay Git http://rogerdudler.github.io/git-guide/index.vi.html GitHub https://help.github.com/
FOOTER Tài liệu tham khảo Chuyển đổi kho code từ svn sang git http://nukeviet.vn/vi/news/Cong-dong-nguon-mo/Chuyen-doi-kho-cod e-google-code-tu-svn-sang-git-va-dua-len-github-135/ Hướng dẫn merge và xử lý lỗi conflic Pull Request trên Git http://wiki.nukeviet.vn/programming:vcs:git#hu%E1%BB%9Bng _d%E1%BA%ABn_merge_va_x%E1%BB%AD_ly_l%E1%BB%97i_conflic ull_request_tren_git
GIT DÀNH CHO NGƯỜI MỚI BẮT ĐẦU Vũ Văn Th o ả Email: [email protected] NukeViet Administrator FB: facebook.com/nukeviet Fanpage: facebook.com/nukevietcms Twitter: twitter.com/nukeviet