Hướng dẫn tự học Git và Github từ cơ bản đến nâng cao

Cách sử dụng Github và làm việc nhóm với nó

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

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.

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ần phả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ài này, bạn sẽ  được học:

Giới thiệu về Github
Tạo kho lưu trữ trong Github
Tạo chi nhánh "Branch" và quản lý các chi nhánh trên Github
Nhâ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ên GitHub. Bạn có thểm xem giới thiệu về 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ống dự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ặc trùng lắp giữ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ặc dự án sẽ trở nên rất dễ dàng. 

GitHub Sử dụng GitHub Aptech Buôn Ma Thuột 300x241Nế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ới Git (bạn phải thao tác trên CLI)
- Khi bạn đăng ký GitHub, bạn sẽ được kết nối với các mạ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ạn giú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òn giúp bạn xây dựng được một hồ sơ cá nhân mạ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úng lê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ãy truy 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

tao repository tren github aptech buon ma thuot

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ải chỉ định ai thì 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 README sẽ 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:

Kho lưu trữ github - Làm việc với github - Aptech Buôn Ma Thuột

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, push và 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ìm hiể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 đổi trong chi nhánh

Chi nhá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ánh trong Github - Sử dụng Git hub - Aptech Buôn Ma Thuột 528x252


Như mô tả trong hình trên, có một nhánh master và một nhá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ụng GitHub' 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.
Nhánh trong Github - Sử dụng Git hub - Aptech Buôn Ma Thuột

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ục thự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 đổi trong chi nhánh "Branches"

Lệnh commitThao tác này giúp bạn lưu các thông tin về sự thay đổi của tệp chỉ khi bạn thực hiện các thao tác như thêm, xóa, sửa tập tin. Khi bạn commit một thay đổi của tập tin, bạn phải luôn cung cấp một thông điệp "mesage"  nó sẽ giúp ghi nhớ những thay đổi do bạn thực hiện. Đại loại như: "Hôm nay, ngày 21/11/2019 lúc 11h30'20s tôi có thêm một dòng trong file index.html" ^^ mặc dù thông báo này không bắt buộc nhưng nó luôn được khuyến nghị để nó có thể phân biệt các phiên bản khác nhau (mỗi thay đổi trên file sẽ tạo ra một phiên bản mới của file đó được hiểu như ảnh chụp snapshot) hoặc phân biệt các commit bạn đã thực hiện trong kho lưu trữ của mình. Những commit này duy trì lịch sử thay đổi, từ đó giúp những người cộng tác khác hiểu rõ hơn về tệp mà họ cùng đang thao tác trên đó. Bây giờ hãy thực hiện commit đầu tiên của chúng ta, làm theo các bước dưới đây:

  • - Nhấp vào branch develop vừa tạo chọn Create New file 
Tạo file mới - Hướng dẫn sử dụng Github - Aptech Buôn Ma Thuột
 
  • - 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ại nhữ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èm theo . 
Tạo file mới - Hướng dẫn sử dụng Github - Aptech Buôn Ma Thuột

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ể pull tệ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 merge và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.

- Nhấp vào tab 'Pull Request'.
 
Tab Pull request - Hướng dẫn sử dụng Github - Aptech Buôn Ma Thuột

- Nhấp vào 'New pull request'.
 
Tab Pull request 2- Hướng dẫn sử dụng Github - Aptech Buôn Ma Thuột

- 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
 
Tab Pull request 3 Hướng dẫn sử dụng Github Aptech Buôn Ma Thuột

- Nhấp vào Create Pull request sau khi đã kiểm tra và so sánh các thay đổi
 
Tab Pull request 4- Hướng dẫn sử dụng Github - Aptech Buôn Ma Thuột

Nhập bất kỳ tiêu đề, mô tả cho các thay đổi của bạn và nhấp vào Create pull request
 
Tab Pull request 5 Hướng dẫn sử dụng Github Aptech Buôn Ma Thuột

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 Develop và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.
 
Merge Github - Hướng dẫn sử dụng Github - Aptech Buôn Ma Thuột

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
 
Delete branch Github - Hướng dẫn sử dụng Github - Aptech Buôn Ma Thuột

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à Fork trong 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.
 
Clone và Fork - Hướng dẫn sử dụng Git Hub - Aptech Buôn Ma Thuột

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. 
 
Nhân bản Clone và Fork  trong Github - Hướng dẫn sử dụng Github - Aptech Buôn Ma Thuột


Rẽ nhánh kho lưu trữ với Fork: Đầ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:
 
Fork - Hướng dẫn sử dụng Git Hub - Aptech Buôn ma Thuột

- 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.
Fork - Hướng dẫn sử dụng Github - Aptech BMT

- 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.
 
Kết quả Fork Github - Aptech Buôn Ma Thuột

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
 

Tác giả bài viết: Aptech Buôn Ma Thuột

Ý kiến bạn đọc

Tham gia thảo luận

Mã an toàn Mã bảo mật   

Theo dòng sự kiện

Bài 6: Gitignore là gì? Sử dụng .gitignore sao cho hiệu quả nhất?
Bài 5:Một số vấn đề thường gặp khi sử dụng Git và cách khắc phục
Bài 4: Hướng dẫn sử dụng Git - Các lệnh cơ bản cần phải biết
Bài 2: Hướng dẫn cài đặt Git trên Windows và Linux
Bài 1: Git là gì? Cùng khám phá công cụ kiểm soát phiên bản phân tán.

Những tin mới hơn

Bài 4: Hướng dẫn sử dụng Git - Các lệnh cơ bản cần phải biết
Bài 5:Một số vấn đề thường gặp khi sử dụng Git và cách khắc phục
Bài 6: Gitignore là gì? Sử dụng .gitignore sao cho hiệu quả nhất?
Bài 7: Git conflicts? Cách xử lý conflict trong khi merge.

Những tin cũ hơn

Bài 2: Hướng dẫn cài đặt Git trên Windows và Linux
Bài 1: Git là gì? Cùng khám phá công cụ kiểm soát phiên bản phân tán.