Tài liệu Git tiếng Việt

70 197 0
Tài liệu Git tiếng Việt

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Git là một hệ thống quản lý mã nguồn phân phối và kiểm soát phiên bản phân tán với sự nhấn mạnh về tốc độ. Git lần đầu được thiết kế và phát triển bởi Linus Torvalds cho phát triển hạt nhân Linux. Nó là một phần mềm miễn phí được phân phối theo các điều khoản của GNU phiên bản 2.

http://vietjack.com/git/index.jsp Copyright © vietjack.com Mục lục Giới thiệu Git Đối với độc giả Điều kiện tiền đề . Cơ Git . VCS – hệ thống quản lý phiên Hệ thống kiểm soát phiên phân phối Các lợi Git . Nguồn miễn phí mở Tốc độ nhanh nhỏ gọn Dự phòng (sao lưu) ẩn . An toàn cao Không yêu cầu phần cứng mạnh . Phân nhánh dễ dàng Các thuật ngữ DVCS . Kho commit nội Thư mục làm việc Staging Index . Blobs . Cây - Trees Ký thác - Commits Các nhánh - Branches . Thẻ - Tags Mô - Clone . Pull . 10 Push 10 HEAD 10 Revision 10 URL . 10 http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/git/index.jsp Copyright © vietjack.com Cài đặt môi trường Git . 11 Cài đặt Git client 11 Tùy chỉnh môi trường Git 11 Thiết lập tên người sử dụng 12 Thiết lập email id . 12 Tránh commit sáp nhập pull 12 Màu . 12 Thiết lập soạn mặc định . 12 Thiết lập công cụ sáp nhập mặc định 12 Liệt kê thiết lập Git . 13 Vòng đời Git 13 Hoạt động Create Git . 14 Tạo tài khoản sử dụng 14 Tạo repository rỗng 15 Cặp khóa chung/riêng . 15 Thêm khóa vào khóa ủy quyền 16 Đẩy (Push) thay đổi tới repository . 17 Hoạt động Clone Git 19 Thực thay đổi Git 20 Review thay đổi Git 22 Commit Git . 24 Hoạt động Push HTML 26 Hoạt động Update Git 28 Tùy chỉnh chức tồn . 28 Thêm chức . 31 Gọi thay đổi . 33 Hoạt động Stash Git . 35 Hoạt động Move Git . 36 Hoạt động Rename Git 38 http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/git/index.jsp Copyright © vietjack.com Hoạt động Delete Git 39 Sửa lỗi Git 41 Trả lại thay đổi chưa commit 41 Dỡ bỏ thay đổi từ khu vực tổ chức 42 Di chuyển điểm trỏ HEAD với git reset 43 Soft 44 Tùy chọn mixed . 46 Tùy chọn hard 46 Hoạt động Tag Git 47 Tạo tag . 47 Quan sát tag . 48 Xóa tag . 49 Hoạt động Patch Git . 49 Quản lý nhánh Git 52 Tạo nhánh 52 Chuyển đổi nhánh 53 Cách tắt để tạo nhánh chuyển đổi nhánh . 54 Xóa nhánh . 54 Đặt lại tên cho nhánh . 55 Sáp nhập hai nhánh 55 Rebase nhánh 59 Xử lý Conflict Git 60 Thực thay đổi nhánh wchar_support 60 Thực thay đổi nhánh master 61 Xử trí conflict . 64 Xử lý conflict . 64 Các Platform khác Git . 67 Repository trực tuyến Git 67 Tạo repository GitHub . 67 http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/git/index.jsp Copyright © vietjack.com Hoạt động push 68 Hoạt động pull . 69 Tài liệu tham khảo Git . 70 Các đường link hữu ích Git 70 Giới thiệu Git Git hệ thống quản lý mã nguồn phân phối kiểm soát phiên phân tán với nhấn mạnh tốc độ. Git lần đầu thiết kế phát triển Linus Torvalds cho phát triển hạt nhân Linux. Nó phần mềm miễn phí phân phối theo điều khoản GNU phiên 2. Phần hướng dẫn giải thích cách để sử dụng Git cho điều khiển phiên dự án môi trường phân tán làm việc phát triển ứng dụng dựa không dựa web. Loạt hướng dẫn dựa nguồn tài liệu của: Tutorialspoint Đối với độc giả Các phần hướng dẫn giúp người bắt đầu tìm hiểu chức cớ hệ thống quản lý phiên Git. Sau hoàn thành phần hướng dẫn này, bạn thấy trình độ mức vừa phải việc sử dụng hệ thống kiểm soát phiên Git, từ bạn có điều kiện để nâng cao trình độ chuyên môn. Điều kiện tiền đề Chúng giả định bạn sử dụng Git để xử lý tất dự án Java Non-Java. Vì tốt bạn tiếp xúc với vòng đời phát triển phần mềm kiến thức phát triển ứng dụng dựa web không dựa web. Cơ Git VCS – hệ thống quản lý phiên Version Control System (VCS) phần mềm mà giúp nhà phát triển phần mềm làm việc trì lịch sử đầy đủ công việc mà họ làm. Dưới chức VCS: http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/git/index.jsp  Cho phép nhà phát triển phần mềm làm việc với  Không cho phép ghi đè lên thay đổi  Duy trì lịch sử phiên bản. Copyright © vietjack.com Dưới loại VCS:  Hệ thống kiểm soát phiên tập trung (CVCS).  Hệ thống kiểm soát phiên phân phối/phân cấp (DVCS). Trong chương tập trung vào hệ thống quản lý phiên phân phối đặc biệt Git. Hệ thống kiểm soát phiên phân phối Hệ thống kiểm soát phiên tập trung (CVCS) sử dụng máy chủ để lưu giữ tất file cho phép team cộng tác với nhau. Nhưng nhược điểm lớn CVCS điểm thất bại nó, tức là, thất bại máy chủ trung tâm. Thật không may là, máy chủ trung tâm bị hỏng giờ, suốt quãng thời gian không cộng tác với cả. Và trường hợp xấu nhất, đĩa máy chủ trung tâm bị hỏng lưu không thực hiện, bạn toàn lịch sử dự án. Tại đây, hệ thống quản lý phiên phân phối xuất hiện. Các client DVCS không kiểm tra ảnh chụp thư mục mà họ quan sát tất repository trữ dự án. Nếu server bị hỏng, kho dự trữ client sao đầy đủ cho server để khôi phục lại nó. Git không phụ thuộc vào server trung tâm lý bạn thực nhiều thao tác bạn offline. Bạn ủy thác thay đổi, tạo nhánh, xem ghi thực hoạt động khác bạn offline. Bạn cần kết nối mạng để công bố thay đổi bạn đưa thay đổi vào dự án. Các lợi Git Nguồn miễn phí mở Git công bố giấy phép nguồn mở GPL. Nó có sẵn miễn phí mạng. Bạn sử dụng Git để quản lý dự án thích hợp mà trả đồng nào. Như nguồn mở, bạn tải mã nguồn thực thay đổi theo yêu cầu bạn. http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/git/index.jsp Copyright © vietjack.com Tốc độ nhanh nhỏ gọn Khi hầu hết thao tác thực nội bộ, mang lại lợi ích lớn tốc độ. Git không phụ thuộc vào server, lý mà không cần tương tác với server từ xa cho thao tác. Phần cốt lõi Git viết C, mà tránh chi phí liên quan đến thời gian chạy với ngôn ngữ bậc cao khác. Mặc dù Git phản ánh toàn repository trữ, kích thước liệu client nhỏ. Điều cho thấy hiệu Git việc nén lưu trữ liệu client. Dự phòng (sao lưu) ẩn Việc liệu xảy mà có nhiều nó. Dữ liệu diện client nào, sử dụng trường hợp hỏng ngừng server. An toàn cao Git sử dụng hàm băm (hash funtion) mật mã chung gọi hàm băm an toàn (SHA1), để đặt tên xác định đối tượng sở liệu nó. Mỗi tập tin commit kiểm tra tóm tắt thu kết thời gian kiểm tra. Điều ngụ ý rằng, thay đổi tập tin, ngày tháng thông báo commit liệu khác từ sở liệu Git mà không hiểu biết Git. Không yêu cầu phần cứng mạnh Trong trường hợp CVCS, server trung tâm cần đủ mạnh để phục vụ yêu cầu toàn team. Đối với team nhỏ, vấn đề, kích thước team phát triển, hạn chế phần cứng server làm hiệu suất công việc thay đổi theo hướng tiêu cực. Trong trường hợp DVCS, nhà phát triển không tương tác với server trừ họ cần công bố thay đổi thực hiện. Tất việc diễn client, phần cứng server thực vấn đề đơn giản. Phân nhánh dễ dàng CVCS sử dụng kỹ thuật chép rẻ, tạo nhánh mới, chép tất code tới nhánh mới, tốn thời gian, không hiệu suất. Ngoài ta, việc xóa sáp nhập nhánh CVCS phức tạp tốn thời gian. Nhưng quản lý nhánh với Git đơn giản. Nó vài giây để tạo, xoa, nhập nhánh. http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/git/index.jsp Copyright © vietjack.com Các thuật ngữ DVCS Kho commit nội Mỗi công cụ VCS cung cấp nơi làm việc riêng làm việc. Các nhà phát triển thực thay đổi nơi làm việc riêng sau commit họ, thay đổi trở thành phần kho. Git có bước tiến xa cách cung cấp cho họ riêng toàn kho. Người sử dụng thực nhiều thao tác với kho thêm, di chuyển, đổi tên file, commit thay đổi nhiều thao tác khác. Thư mục làm việc Staging Index Thư mục làm việc nơi file kiểm tra. Trong CVCS, nhà phát triển thường tạo thay đổi commit thay đổi họ cách trực tiếp tới kho chứa. Nhưng Git sử dụng phương thức khác. Git không theo dõi file sửa đổi. Bất bạn thự commit thao tác, Git tìm kiếm file khu vực tổ chức (staging area). Chỉ file có mặt khu vực tổ chức xem xét để commit mà tất file sửa đổi. Sau tiến trình làm việc Git: Bước : Bạn sửa đổi file từ thư mục làm việc Bước : Bạn thêm file vào khu vực tổ chức Bước : Bạn thực hoạt động commit mà di chuyển file từ khu vực tổ chức. Sau thao tác đẩy (push), lưu thay đổi cố định tới kho chứa Git. http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/git/index.jsp Copyright © vietjack.com Giả sử bạn sửa đổi file, tên sort.c search.c bạn muốn thực hai commit khác cho hoạt động. Bạn thêm file vào khu vực tổ chức thực commit. Sau hoạt động commit đầu tiên, làm lại theo phương thức tương tự cho file lại. # First commit [bash]$ git add sort.c # adds file to the staging area [bash]$ git commit –m “Added sort operation” # Second commit [bash]$ git add search.c # adds file to the staging area [bash]$ git commit –m “Added search operation” Blobs Blob viết tắt Binary Large Object. Mỗi phiên file đại diện blob. Một blob chứa liệu file không chứa siêu liệu file. Nó tập tin nhị phân, http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/git/index.jsp Copyright © vietjack.com sở liệu Git, đặt SHA1 hash file đó. Trong Git, file không đặt tên. Tất thứ đặt địa theo nội dung. Cây - Trees Cây (Tree) đối tượng, mà biểu diễn thư mục. Nó giữ blob thư mục phụ khác. Một file nhị phân mà giữ thứ liên quan đến blob đặt tên SHA1 hash đối tượng cây. Ký thác - Commits Hoạt động commit giữ trạng thái repository. Một commit đặt tên SHA1 hash. Bạn xem xét đối tượng commit nút danh sách liên kết. Mỗi đối tượng commit có điểm trỏ tới đối tượng commit gốc. Từ commit cho, bạn truy xét trở lại cách nhìn vào điểm trỏ gốc để xem lịch sử commit đó. Nếu commit có nhiều commit gốc, commit cụ thể tạo cách sáp nhập hai nhánh. Các nhánh - Branches Các nhánh sử dụng để tạo tuyến khác phát triển. Theo mặc định, Git có nhánh chủ, mà tương tự thân (trunk) Subversion. Thông thường, nhánh tạo để làm việc điểm mới. Một điểm hoàn thành, sáp nhập lại với nhánh chủ xóa nhánh đi. Mỗi nhánh ám HEAD, mà điểm trỏ tới commit nhánh. Bất bạn thực commit, HEAD cập nhật commit đó. Thẻ - Tags Các thẻ tên có nghĩa với phiên xác định kho chứa. Các thể tương tự nhánh, khác thẻ không thay đổi được. Nó có nghĩa là, thẻ nhánh, mà ý định sửa chúng. Một thẻ tạo cho commit cụ thể, bạn tạo commit mới, không cập nhật. Thông thường, nhà phát triển tạo thẻ cho công bố sản phẩm. Mô - Clone Hoạt động mô tạo repository. Hoạt động không kiểm tra việc chép, mà phản ánh kho toàn repository. Người sử dụng thực nhiều thao tác với repository nội bộ. Các mạng thời gian tham gia repository instance đồng bộ. http://vietjack.com/ Trang chia sẻ học online miễn phí Page http://vietjack.com/git/index.jsp Copyright © vietjack.com Pull Hoạt động pull chép thay đổi từ repository instance xa tới kho nội bộ. Hoạt động sử dụng để đồng hai repository instance. Điều tương tự hoạt động cập nhật Subversion. Push Thao tác đẩy (push) chép thay đổi từ repository nội tới kho xa. Nó sử dụng để lưu thay đổi vĩnh viễn repository Git. Nó tương tự hoạt động commit Subversion. HEAD HEAD điểm trỏ, mà thường trỏ vào commit nhánh. Bất bạn thực commit, HEAD cập nhật với commit đó. Đầu nhánh lưu .git/refs/heads/directory. [CentOS]$ ls -1 .git/refs/heads/ master [CentOS]$ cat .git/refs/heads/master 570837e7d58fa4bccd86cb575d884502188b0c49 Revision Revision đại diện cho phiên mã nguồn. Revision Git đại diện commit. Những commit xác định SHA1 secure hash. URL URL đại diện cho vị trí repository Git. Git URL giữ tệp config. [tom@CentOS tom_repo]$ pwd /home/tom/tom_repo [tom@CentOS tom_repo]$ cat .git/config [core] repositoryformatversion = filemode = true bare = false logallrefupdates = true [remote "origin"] http://vietjack.com/ Trang chia sẻ học online miễn phí Page 10 http://vietjack.com/git/index.jsp Copyright © vietjack.com Đặt lại tên cho nhánh Jerry định thêm hỗ trợ cho ký tự rộng rãi dự án chuỗi hoạt động anh ta. Anh ta tạo nhánh mới, tên nhánh không cung cấp xác. Vì thay đổi tên nhánh cách sử dụng tùy chọn -m theo sau old branch name new branch name. [jerry@CentOS src]$ git branch * master new_branch [jerry@CentOS src]$ git branch -m new_branch wchar_support Bây giờ, lệnh git branch tên nhánh mới. [jerry@CentOS src]$ git branch * master wchar_support Sáp nhập hai nhánh Jerry thực chức để trả lại độ dài chuỗi chuỗi ký tự rộng. Một code xuất đây: [jerry@CentOS src]$ git branch master * wchar_support [jerry@CentOS src]$ pwd /home/jerry/jerry_repo/project/src [jerry@CentOS src]$ git diff Lệnh tạo kết sau: t a/src/string_operations.c b/src/string_operations.c index 8ab7f42 8fb4b00 100644 --- a/src/string_operations.c +++ b/src/string_operations.c @@ -1,4 +1,14 @@ #include +#include http://vietjack.com/ Trang chia sẻ học online miễn phí Page 55 http://vietjack.com/git/index.jsp Copyright © vietjack.com + +size_t w_strlen(const wchar_t *s) + { + const wchar_t *p = s; + + while (*p) + ++p; + return (p - s); + } Sau kiểm tra, commit push thay đổi tới nhánh mới. [jerry@CentOS src]$ git status -s M string_operations.c ?? string_operations [jerry@CentOS src]$ git add string_operations.c [jerry@CentOS src]$ git commit -m 'Added w_strlen function to return string lenght of wchar_t string' [wchar_support 64192f9] Added w_strlen function to return string lenght of wchar_t string files changed, 10 insertions(+), deletions(-) Ghi Jerry push thay đổi tới nhánh mới, sử dụng nhánh tên wchar_support thay cho nhánh master. [jerry@CentOS src]$ git push origin wchar_support wchar_support Sau commit thay đổi, nhánh xuất sau: Tom tò mò Jerry làm nhánh tư nhân cậu ta kiểm tra log từ nhánh wchar_support. [tom@CentOS src]$ pwd /home/tom/top_repo/project/src [tom@CentOS src]$ git log origin/wchar_support -2 Lệnh tạo kết sau: commit 64192f91d7cc2bcdf3bf946dd33ece63b74184a3 Author: Jerry Mouse Date: Wed Sep 11 16:10:06 2013 +0530 Added w_strlen function to return string lenght of wchar_t string commit 577647211ed44fe2ae479427a0668a4f12ed71a1 Author: Tom Cat Date: Wed Sep 11 10:21:20 2013 +0530 http://vietjack.com/ Trang chia sẻ học online miễn phí Page 57 http://vietjack.com/git/index.jsp Copyright © vietjack.com Removed executable binary Bằng cách quan sát thông báo commit, Tom nhận Jerry thực chức strlen cho ký tự mở rộng muốn có chức tương tự nhánh master. Thay thực lại bước trên, định lấy code Jerry cách sáp nhập nhánh với nhánh master. [tom@CentOS project]$ git branch * master [tom@CentOS project]$ pwd /home/tom/top_repo/project [tom@CentOS project]$ git merge origin/wchar_support Updating 5776472 64192f9 Fast-forward src/string_operations.c | 10 ++++++++++ files changed, 10 insertions(+), deletions(-) Sau hoạt động sáp nhập, nhánh master xuất sau: Bây giờ, nhánh wchar_support nhập với nhánh master. Chúng ta thẩm tra cách quan sát thông tin commit quan sát chỉnh sửa thực tệp string_operation.c. [tom@CentOS project]$ cd src/ http://vietjack.com/ Trang chia sẻ học online miễn phí Page 58 http://vietjack.com/git/index.jsp Copyright © vietjack.com [tom@CentOS src]$ git log -1 commit 64192f91d7cc2bcdf3bf946dd33ece63b74184a3 Author: Jerry Mouse Date: Wed Sep 11 16:10:06 2013 +0530 Added w_strlen function to return string lenght of wchar_t string [tom@CentOS src]$ head -12 string_operations.c Lệnh tạo kết sau: #include #include size_t w_strlen(const wchar_t *s) { const wchar_t *p = s; while (*p) ++p; return (p - s); } Sau kiểm tra, push thay đổi code tới nhánh master. [tom@CentOS src]$ git push origin master Total (delta 0), reused (delta 0) To gituser@git.server.com:project.git 5776472 64192f9 master −> master Rebase nhánh Lệnh git rebase lệnh sáp nhập nhánh, điểm khác biệt chỉnh sửa thứ tự commit. http://vietjack.com/ Trang chia sẻ học online miễn phí Page 59 http://vietjack.com/git/index.jsp Copyright © vietjack.com Lệnh git merge cố gắng để đặt commit từ nhánh khác lên đầu HEAD nhánh nội tại. Ví dụ, nhánh nội bạn có commit A−>B−>C−>D nhánh sáp nhập có commit A−>B−>X−>Y, sau lệnh git merge biến đổi nhánh nội thành nhánh giống A−>B−>C−>D−>X−>Y Lệnh git rebase cố gắng để tìm gốc nhánh nội nhánh sáp nhập. Nó push commit tới nhánh nội cách chỉnh sửa thứ tự commit nhánh nội tại. Ví dụ, hai nhánh có commit trên, lệnh git rebase chuyển đổi nhánh nội thành nhánh giống A>B>X>Y>C>D. Khi có nhiều nhà lập trình làm việc repository từ xa, bạn chỉnh sửa thứ tự commit repository này. Trong tình này, bạn sử dụng hoạt động rebase để đặt commit nội bạn phần đầu commit repository từ xa bạn push thay đổi. Xử lý Conflict Git Thực thay đổi nhánh wchar_support Jerry làm việc nhánh wchar_support. Anh ta thay đổi tên tính sau kiểm tra, repository thay đổi anh ta. [jerry@CentOS src]$ git branch master * wchar_support [jerry@CentOS src]$ git diff Lệnh tạo kết sau: diff --git a/src/string_operations.c b/src/string_operations.c index 8fb4b00 01ff4e0 100644 --- a/src/string_operations.c +++ b/src/string_operations.c @@ -1,7 +1,7 @@ #include #include -size_t w_strlen(const wchar_t *s) +size_t my_wstrlen(const wchar_t *s) { http://vietjack.com/ Trang chia sẻ học online miễn phí Page 60 http://vietjack.com/git/index.jsp Copyright © vietjack.com const wchar_t *p = s; Sau thẩm tra lại code, repository thay đổi vừa thực hiện. [jerry@CentOS src]$ git status -s M string_operations.c [jerry@CentOS src]$ git add string_operations.c [jerry@CentOS src]$ git commit -m 'Changed function name' [wchar_support 3789fe8] Changed function name files changed, insertions(+), deletions(-) [jerry@CentOS src]$ git push origin wchar_support Lệnh tạo kết sau: Counting objects: 7, done. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 409 bytes, done. Total (delta 1), reused (delta 0) To gituser@git.server.com:project.git 64192f9 3789fe8 wchar_support -> wchar_support Thực thay đổi nhánh master Trong nhánh master, Tom thay đổi tên chức push thay đổi tới nhánh master. [tom@CentOS src]$ git branch * master [tom@CentOS src]$ git diff Lệnh tạo kết quả: diff --git a/src/string_operations.c b/src/string_operations.c index 8fb4b00 52bec84 100644 --- a/src/string_operations.c +++ b/src/string_operations.c @@ -1,7 +1,8 @@ #include http://vietjack.com/ Trang chia sẻ học online miễn phí Page 61 http://vietjack.com/git/index.jsp Copyright © vietjack.com #include -size_t w_strlen(const wchar_t *s) +/* wide character strlen fucntion */ +size_t my_wc_strlen(const wchar_t *s) { const wchar_t *p = s; Sau thẩm tra lại diff, repository thay đổi này. [tom@CentOS src]$ git status -s M string_operations.c [tom@CentOS src]$ git add string_operations.c [tom@CentOS src]$ git commit -m 'Changed function name from w_strlen to my_wc_strlen' [master ad4b530] Changed function name from w_strlen to my_wc_strlen files changed, insertions(+), deletions(-) [tom@CentOS src]$ git push origin master Lệnh tạo kết sau: Counting objects: 7, done. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 470 bytes, done. Total (delta 1), reused (delta 0) To gituser@git.server.com:project.git 64192f9 ad4b530 master -> master Trên nhánh wchar_support, Jerry thực chức strchr cho chuỗi ký tự mở rộng. Sau kiểm tra, repository push thay đổi tới nhánh wchar_support. [jerry@CentOS src]$ git branch master * wchar_support [jerry@CentOS src]$ git diff Lệnh tạo kết sau: diff --git a/src/string_operations.c b/src/string_operations.c index 01ff4e0 163a779 100644 http://vietjack.com/ Trang chia sẻ học online miễn phí Page 62 http://vietjack.com/git/index.jsp Copyright © vietjack.com --- a/src/string_operations.c +++ b/src/string_operations.c @@ -1,6 +1,16 @@ #include #include +wchar_t *my_wstrchr(wchar_t *ws, wchar_t wc) + { + while (*ws) { + if (*ws == wc) + return ws; + ++ws; + } + return NULL; + } + size_t my_wstrlen(const wchar_t *s) { const wchar_t *p = s; Sau thẩm tra, repository thay đổi này. [jerry@CentOS src]$ git status -s M string_operations.c [jerry@CentOS src]$ git add string_operations.c [jerry@CentOS src]$ git commit -m 'Addded strchr function for wide character string' [wchar_support 9d201a9] Addded strchr function for wide character string files changed, 10 insertions(+), deletions(-) [jerry@CentOS src]$ git push origin wchar_support http://vietjack.com/ Trang chia sẻ học online miễn phí Page 63 http://vietjack.com/git/index.jsp Copyright © vietjack.com Lệnh tạo kết sau: Counting objects: 7, done. Compressing objects: 100% (4/4), done. Writing objects: 100% (4/4), 516 bytes, done. Total (delta 1), reused (delta 0) To gituser@git.server.com:project.git 3789fe8 9d201a9 wchar_support -> wchar_support Xử trí conflict Tom muốn thấy mà Jerry làm nhánh tư nhân cậu ta, cố gắng để pull thay đổi từ nhánh wchar_support, git hủy bỏ hoạt động với thông báo lỗi sau: [tom@CentOS src]$ git pull origin wchar_support Lệnh tạo kết sau: remote: Counting objects: 11, done. 63Git Tutorials remote: Compressing objects: 100% (8/8), done. remote: Total (delta 2), reused (delta 0) Unpacking objects: 100% (8/8), done. From git.server.com:project * branch wchar_support -> FETCH_HEAD Auto-merging src/string_operations.c CONFLICT (content): Merge conflict in src/string_operations.c Automatic merge failed; fix conflicts and then commit the result. Xử lý conflict Từ thông báo lỗi, dễ nhận có conflict src/string_operations.c. Anh ta chạy lệnh git command để quan sát chi tiết hơn. [tom@CentOS src]$ git diff Lệnh tạo kết sau: diff --cc src/string_operations.c http://vietjack.com/ Trang chia sẻ học online miễn phí Page 64 http://vietjack.com/git/index.jsp Copyright © vietjack.com index 52bec84,163a779 0000000 --- a/src/string_operations.c +++ b/src/string_operations.c @@@ -1,8 -1,17 +1,22 @@@ #include #include ++>9d201a9c61bc4713f4095175f8954b642dae8f86 { const wchar_t *p = s; Khi Tom Jerry thay đổi tên chức năng, git trạng thái rối loạn hỏi người sử dụng giải vấn đề này. Tom định giữ tên chức từ đề nghị Jerry, giữ lời bình thêm anh ta. Sau dỡ bỏ mâu thuẫn, git diff trông sau: http://vietjack.com/ Trang chia sẻ học online miễn phí Page 65 http://vietjack.com/git/index.jsp Copyright © vietjack.com [tom@CentOS src]$ git diff Lệnh tạo kết sau: diff --cc src/string_operations.c diff --cc src/string_operations.c index 52bec84,163a779 0000000 --- a/src/string_operations.c +++ b/src/string_operations.c @@@ -1,8 -1,17 +1,18 @@@ #include #include + wchar_t *my_wstrchr(wchar_t *ws, wchar_t wc) + { + while (*ws) { + if (*ws == wc) + return ws; + ++ws; + } + return NULL; + } + +/* wide character strlen fucntion */ - size_t my_wc_strlen(const wchar_t *s) + size_t my_wstrlen(const wchar_t *s) { const wchar_t *p = s; Khi Tom chỉnh sửa file, phải repository thay đổi sau pull thay đổi đó. [tom@CentOS src]$ git commit -a -m 'Resolved conflict' http://vietjack.com/ Trang chia sẻ học online miễn phí Page 66 http://vietjack.com/git/index.jsp Copyright © vietjack.com [master 6b1ac36] Resolved conflict [tom@CentOS src]$ git pull origin wchar_support. Tom giải conflict, hoạt động pull thành công. Các Platform khác Git GNU/Linux Mac OS sử dụng line-feed (LF), dòng ký tự kết thúc dòng (lineending character) Windows sử dụng kết hợp line-feed carriage-return (LFCR) để biểu diễn dòng ký tự kết thúc. Để tránh commit không cần thiết khác dòng kết thúc, phải định cấu hình client để viết dạng line-ending tới repository. Đối với hệ điều hành Windows, định hình Git client để chuyển đổi line-ending sang định dạng CRLF kiểm tra, chuyển đổi chúng trở lại định dạng LF suốt trình hoạt động commit. Các thiết lập sau cần thiết để thực hiện. [tom@CentOS project]$ git config --global core.autocrlf true Đối với hệ điều hành GNU/Linux Mac OS, định hình client git chuyển đổi lineending từ CRLF sang LF thực hoạt động checkout. [tom@CentOS project]$ git config --global core.autocrlf input Repository trực tuyến Git GitHub mạng xã hội dành cho nhà lập trình cho dự án phát triển phần mềm sử dụng hệ thống quản lý git revision. Nó có ứng dụng tiêu chuẩn GUI có cho tải trực tiếp (Windows, Mac, GNU/Linux) máy từ trang web. Nhưng phần hướng dẫn này, xem xét phần CLI. Tạo repository GitHub Bạn vào trang github.com. Nếu bạn có tài khoản GitHub, sau đăng nhập vào hệ thống tài khoản tạo tài khoản mới. Theo bước tronggithub.com để tạo repository mới. http://vietjack.com/ Trang chia sẻ học online miễn phí Page 67 http://vietjack.com/git/index.jsp Copyright © vietjack.com Hoạt động push Tom định sử dụng máy chủ GitHub. Để bắt đầu dự án mới, tạo thư mục file đó. [tom@CentOS]$ mkdir github_repo [tom@CentOS]$ cd github_repo/ [tom@CentOS]$ vi hello.c [tom@CentOS]$ make hello cc hello.c -o hello [tom@CentOS]$ ./hello Lệnh tạo kết sau: Hello, World !!! Sau thẩm tra lại code mình, bắt đầu làm việc với thư mục với lệnh git init commit thay đổi nội anh ta. [tom@CentOS]$ git init Initialized empty Git repository in /home/tom/github_repo/.git/ [tom@CentOS]$ git status -s ?? hello ?? hello.c [tom@CentOS]$ git add hello.c [tom@CentOS]$ git status -s A hello.c ?? hello [tom@CentOS]$ git commit -m 'Initial commit' Sau đó, thêm địa URL repository GitHub điều khiển từ xa push thay đổi tới repository từ xa này. http://vietjack.com/ Trang chia sẻ học online miễn phí Page 68 http://vietjack.com/git/index.jsp Copyright © vietjack.com [tom@CentOS]$ git remote add origin https://github.com/kangralkar/testing_repo.git [tom@CentOS]$ git push -u origin master Hoạt động push yêu cầu tài khoản sử dụng mật GitHub . Sau đăng nhập thành công, hoạt động push thực thành công. Lệnh tạo kết sau: Username for 'https://github.com': kangralkar Password for 'https://kangralkar@github.com': Counting objects: 3, done. Writing objects: 100% (3/3), 214 bytes, done. Total (delta 0), reused (delta 0) To https://github.com/kangralkar/test_repo.git * [new branch] master −> master Branch master set up to track remote branch master from origin. Bắt đầu từ giờ, Tom push thay đổi tới repository GitHub. Anh ta sử dụng tất lệnh đề cập phần hướng dẫn với repository GitHub. Hoạt động pull Tom push thành công tất thay đổi tới repository GitHub. Bây giờ, nhà lập trình khác quan sát thay đổi cách thực hoạt động mô cập nhật repository nội họ. Jerry tạo thư mục thư mục home mô repository GitHub GitHubbằng cách sử dụng lệnh git clone. [jerry@CentOS]$ pwd /home/jerry [jerry@CentOS]$ mkdir jerry_repo [jerry@CentOS]$ git clone https://github.com/kangralkar/test_repo.git Lệnh tạo kết sau: Cloning into 'test_repo' . remote: Counting objects: 3, done. http://vietjack.com/ Trang chia sẻ học online miễn phí Page 69 http://vietjack.com/git/index.jsp Copyright © vietjack.com remote: Total (delta 0), reused (delta 0) Unpacking objects: 100% (3/3), done. Anh ta thẩm tra nội dung thư mục cách chạy lệnh ls. [jerry@CentOS]$ ls test_repo [jerry@CentOS]$ ls test_repo/ hello.c Tài liệu tham khảo Git ác tài liệu sau chứa thông tin hữu ích Git. Bạn nên sử dụng chúng để nâng cáo kiến thức hiểu sâu chủ đề loạt hướng dẫn này. Các đường link hữu ích Git  Tutorialspoint − Loạt hướng dẫn xây dựng dựa nguồn này.  Git Website - Trang web thức Git  Git Documentation - Tài liệu Git thức.  Git Wikipedia - Wikipedia tham khảo Git. http://vietjack.com/ Trang chia sẻ học online miễn phí Page 70 [...]... việc Theo quy ước, repository rỗng này phải được đặt tên như git [gituser@CentOS ~]$ pwd /home/gituser [gituser@CentOS ~]$ mkdir project .git [gituser@CentOS ~]$ cd project .git/ [gituser@CentOS project .git] $ ls [gituser@CentOS project .git] $ git bare init Initialized empty Git repository in /home/gituser-m/project .git/ [gituser@CentOS project .git] $ ls branches config description HEAD hooks info objects... apt-get install git- core [sudo] password for ubuntu: [ubuntu ~]$ git version git version 1.8.1.2 Và nếu bạn đang sử dụng RPM do GNU/Linux phân phối, bạn sử dụng lệnh yum như dưới: [CentOS ~]$ su Password: [CentOS ~]# yum -y install git- core [CentOS ~]# git version git version 1.7.1 Tùy chỉnh môi trường Git Git cung cấp công cụ cấu hình git cho phép bạn thiết lập các cấu hình đa dạng Git lưu tất cả...http://vietjack.com /git/ index.jsp Copyright © vietjack.com url = gituser @git. server.com:project .git fetch = +refs/heads/*:refs/remotes/origin/* Cài đặt môi trường Git Trước khi bạn có thể sử dụng Git, bạn phải cài đặt và thực hiện một vài thay đổi về cấu hình Dưới đây là các bước để cài đặt Git client trên Ubuntu và Centos Linux Cài đặt Git client Nếu bạn đang sử dụng Debian do... master, chúng tôi sử dụng chính xác tên nhánh [tom@CentOS tom_repo]$ git remote add origin gituser @git. server.com:project .git [tom@CentOS tom_repo]$ git push origin master Lệnh trên sẽ tạo ra kết quả: Counting objects: 3, done Writing objects: 100% (3/3), 242 bytes, done Total 3 (delta 0), reused 0 (delta 0) To gituser @git. server.com:project .git * [new branch] master −> master Bây giờ, những thay đổi này... Hoạt động Update trong Git Tùy chỉnh các chức năng đang tồn tại Tom thực hiện hoạt động mô phỏng và thấy một file mới string.c Anh ta muốn biết ai đã thêm file này vào kho chứa và với mục đích gì, vì thế anh ta chạy lệnh git log [tom@CentOS ~]$ git clone gituser @git. server.com:project .git Lệnh này sẽ tạo ra kết quả sau: Initialized empty Git repository in /home/tom/project/ .git/ remote: Counting objects:... Page 16 http://vietjack.com /git/ index.jsp Copyright © vietjack.com Tom nhập khóa chung của anh ta tới server bằng cách sử dụng lệnh ssh-copy-id như dưới đây: [tom@CentOS ~]$ pwd /home/tom [tom@CentOS ~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub gituser @git. server.com Lệnh trên sẽ tạo ra kết quả sau: gituser @git. server.com's password: Now try logging into the machine, with "ssh 'gituser @git. server.com'", and check... ~]$ mkdir jerry_repo [jerry@CentOS ~]$ cd jerry_repo/ [jerry@CentOS jerry_repo]$ git clone gituser @git. server.com:project .git Lệnh trên sẽ tạo kết quả sau: Initialized empty Git repository in /home/jerry/jerry_repo/project/ .git/ http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 19 http://vietjack.com /git/ index.jsp Copyright © vietjack.com remote: Counting objects: 3, done Receiving... project]$ git add string.c Git đang chỉ một câu hỏi đánh dấu trước khi đặt tên file Rõ ràng là các file này không là một phần của Git, và đó là tại sao Git không biết phải làm điều gì với những file này Đó là tại sao, Git đang chỉ một câu hỏi đánh dấu trước khi đặt tên file Jerry đã thêm file tới khu vực staging, lệnh git status sẽ chỉ các file có trong khu vực này [jerry@CentOS project]$ git status... tom_repo [tom@CentOS ~]$ cd tom_repo/ [tom@CentOS tom_repo]$ git init Initialized empty Git repository in /home/tom/tom_repo/ .git/ [tom@CentOS tom_repo]$ echo 'TODO: Add contents for README' > README [tom@CentOS tom_repo]$ git status -s ?? README [tom@CentOS tom_repo]$ git add [tom@CentOS tom_repo]$ git status -s A README [tom@CentOS tom_repo]$ git commit -m 'Initial commit' Lệnh trên tạo kết quả sau:... khi đó theo mặc định Git tạo các commit sáp nhập Chúng ta có thể tránh được điều này theo các thiết lập sau: jerry@CentOS project]$ git config global branch.autosetuprebase always Màu nổi Các lệnh sau tạo màu nổi trong bảng điều khiển Git [jerry@CentOS project]$ git config global color.ui true [jerry@CentOS project]$ git config global color.status auto [jerry@CentOS project]$ git config global color.branch . .git. [gituser@CentOS ~]$ pwd /home/gituser [gituser@CentOS ~]$ mkdir project .git [gituser@CentOS ~]$ cd project .git/ [gituser@CentOS project .git] $ ls [gituser@CentOS project .git] $. jerry_repo]$ git clone gituser @git. server.com:project .git Lệnh trên sẽ tạo kết quả sau: Initialized empty Git repository in /home/jerry/jerry_repo/project/ .git/ http://vietjack.com /git/ index.jsp. nhất 33 Hoạt động Stash trong Git 35 Hoạt động Move trong Git 36 Hoạt động Rename trong Git 38 http://vietjack.com /git/ index.jsp Copyright © vietjack.com http://vietjack.com/ Trang chia sẻ

Ngày đăng: 20/09/2015, 09:40

Tài liệu cùng người dùng

Tài liệu liên quan