Bài 3: cách sử dụng github và làm việc nhóm bằng github

      30
Github là một nền tảng dựa trên web được sử dụng để kiểm soát phiên bản. Git đơn giản hóa quá trình làm việc với người khác và giúp dễ dàng hợp tác trong các dự án.

Bạn đang xem: Bài 3: cách sử dụng github và làm việc nhóm bằng github


Nếu bạn là người không biết sử dụng GitHub, thì bài viết này là dành cho bạn. Biết và sử dụng Git & GitHub đã dần dần đi từ kỹ năng ưa thích sang "cầnphải" được trang bịtrong nhiều vai trò công việc. Trong bài viết này, tôi sẽ đưa bạn qua các chức năng và khả năng khác nhau của GitHub. Trong bàinày, bạn sẽ được học:Giới thiệu về GithubTạo kho lưu trữ trong GithubTạo chi nhánh "Branch" và quản lý các chi nhánh trên GithubNhân bản Clone và Fork trong Github

Giới thiệu về GitHub

Trong bài trước tôi có nói sơ qua về cách thức tạo tài khoản và kho lưu trữ "Repository" trênGitHub. Bạn có thểm xem giới thiệuvề git. Trong bài viết này tôi sẽ nói rõ hơn về nó, GitHub là một dịch vụ chia sẻ file hoặc code để cùng cộng tác làm việc với những người khác nhau.GitHub là một phần mềm kiểm soát phiên bản "VCS" được sử dụng nhiều.Nó rất hữu ích khi dự án của bạn có nhiều hơn một người cùng làm việc. Ví dụ, một nhóm phát triển phần mềm muốn xây dựng một trang web và mọi người phải cập nhật code của họ đồng thời trong khi làm việc với dự án. Trong trường hợp này, Github giúp họ xây dựng một kho lưu trữ tập trung, nơi mọi người có thể tải lên, chỉnh sửa và quản lý các đoạn code của dự án đó.GitHub có nhiều lợi thế khác nhau nhưng nhiều người thường nghi ngờ tại sao không sử dụng dropbox hoặc bất kỳ hệ thốngdựa trên điện toán đám mây nào? Để trả lời câu hỏi này, bạn hãy hình dung:Nếu có nhiều hơn hai nhà phát triển phần mềm đang làm việc trên cùng một file và họ muốn cập nhật đồng thời. Thật không may, người lưu tệp đầu tiên sẽ được ưu tiên hơn những người còn lại. Trong khi đó ở Github, điều này không xảy ra như vậy. Github có cơ chế ghi lại các thay đổi và phản ánh chúng theo một cách có tổ chức để tránh mọi sự xung đột chồng chéo hoặctrùng lắpgiữa bất kỳ tệp nào được tải lên. Do đó, sử dụng kho lưu trữ tập trung GitHub, sẽtránh được tất cả sự nhầm lẫn và làm việc trên cùng một tập tin hoặcdự ánsẽ trở nên rất dễ dàng.

*
Nếu bạn nhìn vào hình ảnh bên trái này, thì GitHub là một kho lưu trữ trung tâm và Git là một công cụ cho phép bạn tạo một kho lưu trữ cục bộ tại máy tính của bạn. Bây giờ mọi người thường bị nhầm lẫn giữa git và GitHub nhưng thực tế nó rất khác nhau. Git là một công cụ kiểm soát phiên bản cho phép bạn thực hiện tất cả các loại hoạt động để lấy dữ liệu từ máy chủ trung tâm hoặc đẩy dữ liệu đến nó trong khi GitHub là một nền tảng lưu trữ cốt lõi để giúp lập trình viên cộng tác với nhau kiểm soát các phiên bản mã code. Hay nói cách khác, GitHub là một tập hợp nhiều kho lưu trữ được đặt trên một máy chủ từ xa, nócho phép bạn lưu trữ kho của mình trên đó.Dưới đây là những ưu điểm màGitHub làm cho git trở nên đơn giản hơn:- GitHub cung cấp cho bạn một giao diện trực quan (nền web) đẹp mắt giúp bạn theo dõi hoặc quản lý các dự án được kiểm soát phiên bản ở local trái ngược so vớiGit (bạn phải thao tác trên CLI)- Khi bạn đăng ký GitHub, bạn sẽ đượckết nối với cácmạng xã hội bao gồm các tổ chức, cá nhân cũng đang làm việc cùng lĩnh vực với bạngiúp bạn có thể trao đổi với họ vàtheo dõi các thông tin mới nhất về các dự án code khác mà bạn quan tâm. Song song đó, Github còngiúp bạn xây dựng đượcmột hồ sơ cá nhânmạnh mẽ. Bạn nên tin chắc rằng nhà tuyển dụng có thể sẽ kiểm tra profile của bạn khi được phỏng vấn đấy.Nếu bạn thấy hứng thú với 2 đặc điểm trên, hãy bắt đầu ngay với GitHub :)

Bước 1: Tạo kho lưu trữ GitHub - Tạo Repository trên GitHub

Một kho lưu trữ "Repository" là một không gian lưu trữ, nơi màdự án của bạn sẽ được đẩy lên. Nó có thể là nằm ở local như một thư mục trên máy tính của bạn hoặc nó có thể là một không gian lưu trữ trên GitHub hoặc một máy chủ trực tuyến khác. Bạn có thể lưu trữcác tệp mã, tệp văn bản, hình ảnh hoặc bất kỳ loại tệp nào trong kho lưu trữ.Nếu như bạn cần một kho lưu trữ như GitHub để khi bạn thực hiện một số thay đổi và muốn tải chúnglên kho để lưu trữ và chia sẻ trực tuyến. Kho lưu trữ GitHub này hoạt động như kho lưu trữ từ xa của bạn. Các bước để tạo kho lưu trữ GitHub rất đơn giản, bạn có thể làm theo cách sau:Đầu tiên hãytruy cập liên kết: https://github.com/ . Điền vào biểu mẫu đăng ký và nhấp vào Sign up for Github để tạo cho mình 1 tài khoản Github.Đăng nhập vào tài khoản GitHub của bạn.Sử dụng dấu "+" ngoài cùng bên phải để tạo một một Repository


*

Bây giờ, nếu bạn nhận thấy theo mặc định, kho lưu trữ GitHub là công khai "Public", điều đó có nghĩa là bất kỳ ai cũng có thể xem nội dung của kho lưu trữ này. Còn đối với kho riêng "Private", bạn phảichỉ định aithì họ có thể xem nội dung.Lưu ý: hãy khởi tạo kho lưu trữ của bạn bằng tệp README.md nếu như đây là kho lưu trữ hoàn toàn mới. Tệp này thường được sử dụng để lưu các mô tả về kho của bạn, các thay đổi của kho để giúp người xem có thể nắm được một cách khái quát và nhanh nhất về kho mà bạn chia sẻ.Khi bạn đánh dấu vào tùy chọn Initialize this repository with a README thìfile READMEsẽ là tệp đầu tiên bên trong kho lưu trữ của bạn. Ngoài ra bạn còn 2 tùy chọn thêm file .gitignorelicense để thêm vào kho của mình. Vấn đề này, tôi sẽ đề cập trong bài sau nhé!Xin chúc mừng, kho lưu trữ của bạn đã được tạo thành công! Nó sẽ trông giống nhưdưới đây:


*

Như vậy, tôi đã chuẩn bị sẵn sàng cho mình một kho lưu trữ từ xa trên Github, bây giờ thì tôi có thể thực hiện các commit, pull, pushvà thực hiện tất cả các hoạt động khác với kho này. Bây giờ hãy tiếp tục tìmhiểu phân nhánh trong GitHub.

Bước 2: Tạo chi nhánh "Branch" trên Github và quản lý các thay đổitrong chi nhánh

Chinhánh "Branch"trong Github là gì?

Branch trong git và github dịch ra là chi nhánh ^^, nó sẽ giúp bạn làm việc trên các phiên bản khác nhau của kho lưu trữ cùng một lúc. Giả sử bạn muốn thêm một tính năng mới (đang trong giai đoạn phát triển) và bạn lo ngại tính năng mới này chưa được phát triển ổn định, nếu mang nó vào phiên bản đã hoàn thiện chạy ổn định rồi thìnó có thể gây ra lỗi bug không đang có cho dự án của mình. Các Branches của git lúc này là vị cứu tinh tuyệt với :)

Chi nhánh cho phép bạn di chuyển qua lại giữa các trạng thái / phiên bản "states/versions" khác nhau của dự án. Để giải quyết vấn đề nêu trên, bạn có thể tạo một nhánh mới và kiểm tra tính năng mới trên đó mà không ảnh hưởng đến nhánh chính. Khi bạn đã thực hiện xong, bạn có thể hợp nhất "merge" các thay đổi từ nhánh mới sang nhánh chính. Ở đây, nhánh chính là nhánh master, có trong kho lưu trữ của bạn theo mặc định. Tham khảo hình ảnh dưới đây để hiểu rõ hơn:


*

Như mô tả trong hình trên, có một nhánh master và mộtnhánh mới develop để thử nghiệm. Trong nhánh develop này, hai bộ thay đổi C2,C4 được thực hiện và sau khi hoàn thành, nó được hợp nhất trở lại nhánh chính master tại C5. Đây là cách phân nhánh hoạt động!Hãy tiếp tục với bài''Hướng dẫn sử dụngGitHub' này và tìm hiểu cách bạn có thể tạo một chi nhánh trên GithubĐể tạo một nhánh trong GitHub, hãy làm theo các bước dưới đây:

- Nhấp vào danh sách thả xuống "Branch: master"- Ngay khi bạn nhấp vào chi nhánh, bạn có thể tìm thấy một chi nhánh hiện có hoặc bạn có thể tạo một chi nhánh mới. Trong trường hợp của tôi, tôi đang tạo một chi nhánh mới với tên là develop. Tham khảo ảnh chụp màn hình dưới đây để hiểu rõ hơn.
*

Khi bạn đã tạo một nhánh mới, bây giờ bạn có hai nhánh trong kho lưu trữ của mình tức là master (nhánh chính) và develop. Chi nhánh develop mới chỉ là bản sao của chi nhánh master, tại thời điểm bạn vừa tạo mới nếu bạn kiểm tra trên develop bạn sẽ thấy tất cả các file, commit của master.Bây giờhãy tiếp tụcthực hiện một số thay đổi trong nhánh develop mới xem thế nào nhé!

Cách sử dụng GitHub: Quản lý các thay đổitrong chi nhánh "Branches"

- Nhấp vào branch develop vừa tạo chọnCreate New file
*

- Sau khi tạo mới một tập tin, ở đây tôi đặt tên cho tập tin là hello.txt kèm theo nội dung nhập ở phần Edit new file-Viết một commit để ghi lạinhững thay đổi của bạn với tiêu đề và phần mô tả nội dung commit- Nhấp vào Commit new fileđể tạo mới 1 commit kèmtheo .
Lệnh pull:Lệnh kéo "pull" là lệnh quan trọng nhất trong GitHub. Nó cho biết những thay đổi được thực hiện trong tệp và yêu cầu những người đóng góp khác xem nó và ra yêu cầu hợp nhất nó với nhánh chính master (Pull request) . Khi commitđược thực hiện, bất kỳ ai cũng có thể pulltệp và có thể bắt đầu một cuộc thảo luận về nó. Khi tất cả đã xong, bạn có thể hợp nhất bằng cách mergevào master. Lệnh Pull so sánh các thay đổi được thực hiện trong tệp và nếu có bất kỳ xung đột nào, bạn có thể giải quyết thủ công. Bây giờ chúng ta hãy xem các bước khác nhau liên quan để tạo một Pull Request trong GitHub.

Xem thêm: Tham Khảo 5 Loại Font Chữ Thường Dùng Trong Word : Font Chữ Và Cỡ Chữ


- Khi bạn nhấp vào yêu cầu kéo, chọn Branch và nhấp vào 'develop ' để xem các thay đổi giữa hai tệp có trong kho lưu trữ của chúng ta
Sau khi tạo thành công Pull request, chúng ta hãy tiếp tục hợp nhất yêu cầu này.Lệnh Merge: Đây làlệnh cuối cùng đểhợp nhất các thay đổi trên nhánh Developvào nhánh chính Master sau khi một Pull request đã được khởi tạo và các cộng tác viên đã xem xét, chấp thuận nội dung. Các bước sau đây để hợp nhất 2 nhánh này.- Nhấp vào Merge pull requestđể hợp nhất các thay đổi vào nhánh chính.- Nhấp vào Confirm merge để xác nhận hợp nhất, nếu hợp nhất thành công sẽ có thông báo.
Lưu ý: Hợp nhất chỉ diễn ra khi không xảy ra xung đột conflict. Github sẽ kiểm tra conflict, nếu xảy ra xung đột bạn phải giải quyết vấn đề này trước khi lệnh merge được thực hiện.Sau khi merge thành công vào nhánh master, bạn có thể xóa nhánh develop bằng cách nhấn vào Delete branch
Tôi hy vọng các bạn đang thử các bước này đồng thời trong khi bạn đang học cách sử dụng GitHub. Tiếp theo, chúng ta hãy chuyển sang chủ đề cuối cùng trong 'cách sử dụng GitHub', đó là làm thế nào để nhân bản "clone" và "fork"kho lưu trữ GitHub.

Bước 3: Nhân bản Clone và Forktrong Github

Trước khi đi vào từng phần, bạn hãy nhìn qua sơ đồ này để hình dung được cách thức hoạt động của Clone và Fork trên Github. Bạn có thể hiểu là Fork thao tác sao chép các kho lưu trữ "repository" từ tài khoản này đến tài khoản khác trên Github, còn Clone thì giúp chúng ta tải xuống kho lưu trữ về máy tính ở local.
Nhân bản Clone:Trước khi tôi thực sự nói về việc nhân bản một kho lưu trữ GitHub, thì việc đầu tiên bạn cần phải hiểu lý do tại sao chúng ta cần sao chép một kho lưu trữ? Câu trả lời rất đơn giản! Đó là để tái sử dụng code, giả sử bạn muốn sử dụng một số mã code có trong kho lưu trữ công cộng (tài khoản Github khác), bạn có thể sao chép trực tiếp nội dung bằng cách nhân bản hoặc tải xuống xuống máy tính của mình.
Rẽ nhánh kho lưu trữ vớiFork:Đầu tiên, chúng ta hãy nói về lý do tại sao chúng ta cần rẽ nhánh. Giả sử, bạn cần một số mã có trong kho lưu trữ công khai, để đẩy nó vào kho lưu trữ và tài khoản GitHub của bạn. Muốn làm điều này chúng ta cần rẽ nhánh "Fork" một kho lưu trữ sang tài khoản của mình đúng không nào?Nhưng trước khi chúng ta bắt đầu với forking, có một số điểm quan trọng mà bạn nên luôn luôn ghi nhớ.- Những thay đổi được thực hiện đối với kho lưu trữ ban đầu sẽ được phản ánh trở lại kho lưu trữ rẽ nhánh.- Nếu bạn thực hiện thay đổi trong kho lưu trữ rẽ nhánh, nó sẽ không được phản ánh đến kho lưu trữ ban đầu cho đến khi và trừ khi bạn thực hiện yêu cầu kéo.Bây giờ hãy xem làm thế nào bạn có thể Fork một kho lưu trữ. Đối với điều đó, hãy làm theo các bước dưới đây:
- Khám phá và tìm kiếm các kho lưu trữ công cộng mà bạn cần Fork. Ví dụ: Tôi sẽ sử dụng kho lưu trữ mã nguồn Laravel để làm.- Ngay khi bạn nhấp vào trên Fork, bạn sẽ mất một chút thời gian để phân nhánh kho lưu trữ. Sau khi hoàn thành, bạn sẽ nhận thấy tên kho lưu trữ nằm trong tài khoản của bạn.
- Kết quả sau khi Fork kho lưu trữ của Laravel về tài khoản Github của tôi. Như bạn thấy đường dẫn đã thay đổi từ laravel/laravel thành aptechbuonmathuot/laravel.
Xin chúc mừng! Bạn đã rẽ nhánh thành công một kho lưu trữ hiện có trong tài khoản của riêng bạn.Đó là tất cả cho bài viết này, tôi hy vọng bạn thích nó và đã có giải pháp cho cách sử dụng GitHub.Tìm hiểu thêm về:Java là gì?Tìm hiểu vim là gì? Các lệnh thường được sử dụng nhiều nhất trong vim editor