DANH SÁCH HÌNH ẢNHHình 31: Minh họa tính năng đề xuất code của GitHub Copilot 24 Hình 32: Minh họa giao diện GitHub Student Developer Pack 25 Hình 33: Minh họa giao diện xác minh trạng t
GIỚI THIỆU TỔNG QUAN VỀ GIT VÀ GITHUB
Giới thiệu v GITHUB ề
2.1 Github là gì? Chức năng Github?
GitHub là một dịch vụ cung cấp kho lưu trữ mã nguồn Git cho các dự án phần mềm GitHub có đầy đủ các tính năng của Git, nhưng cũng bổ sung những tính năng mạng xã hội như feeds, follower và network graph để các lập trình viên học hỏi, tương tác với nhau Đối với những dự án có nhiều người tham gia, GitHub còn đóng vai trò là công cụ giám sát và quản lý dự án, cho phép khôi phục code nếu cần.
- Quản lý mã ngu n d dàng: M i khi ta t o m t Repository thì toàn bồ ễ ỗ ạ ộ ộ source code đã được lưu trên Github Vì vậy ta có thể theo dõi quá trình thông qua tính năng Comment sau m i l n Commit Nhiỗ ầ ều người có th cùng làm m t repository ể ộ
- Tracking: Lưu trữ lại lịch s phiên b n c a t ng lử ả ủ ừ ần Commit và địa lưu trữ để đề phòng trường h p phiên bợ ản trước b m t hoị ấ ặc không tìm được Đặc bi t khi có nhi u thành viên ệ ề cùng tham gia vào d án ự
- Markdown: là một cách định d ng text trên web ạ Người dùng có thể chỉnh s a cácử h hiển th c a document, format tị ủ ừ như định d ng ạ in đậm hay in nghiêng, thêm hình và tạo list nh ng th b n có th làm H u h t, Markdown chữ ứ ạ ể ầ ế ỉ là đoạn text đơn thuần với những ký tự đặc biệt chèn vào, như # hay * Trong GitHub thì bạn có th s d ng ể ử ụ Markdown ở những nơi: Git, Comments tại Issues và Pull Requests, các file có đuôi md hay markdown extension
- Ghi điểm với nhà tuyển dụng, làm đẹp CV: các lập trình viên sử dụng Github như một mạng xã hội để trình bày thông tin t ng quát vổ ề trình độ ả b n thân
- Mở rộng ki n thế ức, kỹ năng, các mối quan hệ: nâng cao trình độ thông qua việc học hỏi t các mã ngu n m trên toàn c u ừ ồ ở ầ
2.2 Giới thiệu giao di n Github ệ
Hình 9: Minh ho giao di n t o m i Repositoryạ ệ ạ ớ
- Giao diện thông tin người dùng:
Hình 10: Minh h a giao di n ph n quọ ệ ầ ản lý người dùng
- Tab Issue: cho phép người dùng xem, t o và qu n lý các vạ ả ấn đề liên quan đến d án ự Vấn đề có thể là lỗi, yêu cầu tính năng hoặc bất kỳ vấn đề nào liên quan đến dự án Giả sử bạn đang theo dõi 1 repo và thấy có m t sộ ố chỗ c n sầ ửa đổi, b n có th comment ý kiạ ể ến của mình vào Repo đó Sau đó người quản trị sẽ xem xét, thay đổi và trả lời bạn
Hình 11: Minh h a thông tin tab Issueọ
Tab "Mã" trên GitHub giúp người dùng duyệt qua các thư mục, xem và tải xuống các tệp, kiểm tra lịch sử thay đổi mã nguồn và tạo phiên bản mới (branch) cho quá trình phát triển Điều này tạo điều kiện thuận lợi cho việc quản lý mã nguồn, giúp nắm rõ cấu trúc và nội dung của dự án.
Hình 12: Minh h a thông tin tab Code ọ
- Tab Pull Requests: dùng để xem, t o và qu n lý các yêu c u kéo (pull requests) Pull ạ ả ầ Requests cho phép người dùng đề xuất thay đổi trong mã nguồn của repo, như sửa lỗi hoặc thêm tính năng mới, gộp code mới vào các nhánh chính trong một repo Người dùng có th so sánh các phiên b n khác nhau c a mã ngu n, xem bình lu n và g i yêu c u kéo ể ả ủ ồ ậ ử ầ mới thông qua tab này
Pull request (PR) là m t yêu cộ ầu để ợ h p nhất các thay đổ ừi t branch hi n t i c a b n vào ệ ạ ủ ạ branch chính Để tạo pull request, bạn chọn branch hiện tại của bạn và branch chính mà bạn mu n h p nhố ợ ất vào (thường là branch mặc định như main hoặc master)
- Tab Projects: cho phép người dùng t o và quạ ản lý các project liên quan đến công việc trong repository Chức năng này sẽ cung c p m t giao di n giấ ộ ệ ống như một t m bấ ảng, người dùng có th t o các danh sách công vi c, theo dõi tiể ạ ệ ến độ, gán người thực hiện và theo dõi công vi c thông qua tab này ệ
Tab Wiki là một tab quan trọng trong "Quản lý dự án" của Asana Đây là kho tài liệu hướng dẫn, thông tin chi tiết về dự án và các hướng dẫn sử dụng Người dùng có thể tạo và chỉnh sửa các trang wiki, chia sẻ kiến thức và tài liệu liên quan đến dự án, giúp các thành viên trong nhóm có thể tiếp cận thông tin dễ dàng và nhanh chóng, đảm bảo sự hiểu biết nhất quán về dự án.
Bước 1: Sau khi đăng nhập vào Github, giao di n web s ệ ẽhiện ra Để t o m t Repository ạ ộ mới, click vào biểu tượng hoặc trên menu và chọn New repository
Bước 2: Đặt tên cho Repository, có thể chọn lo i kho ch a là ạ ứ Public (ai cũng có thể clone) và Private (chỉ có những người đượ ấc c p quy n m i có th clone), tùy vào mề ớ ể ục đích sử dụng của người dùng
Bước 3: Lướt xu ng cu i trang và click vào ố ố hoàn thành để
2.3.2 Thêm thành viên: a T ại phía ngườ i m ờ i
Bước 1: Sau khi t o thành công m t Repo, giao di n m i hiạ ộ ệ ớ ện ra, người dùng click vào tab , ch n m c ọ ụ , sau đó click vào nút để thêm thành viên
Hình 16: Minh h a cách thêm thành viên vào d án (1) ọ ự
Bước 3: Nhập thông tin để tìm kiếm sau đó click vào “Select a collaborator above” để mời thành viên vào project c a mình ủ
Hình 17: Minh h a cách thêm thành viên vào d án (2) ọ ự
Sau khi đã hoàn thành các bước, đợi thành viên xác nhận tham gia project b T ại phía người đượ c m ờ i
Bước 1: Kiểm tra thông báo Invite tại
Hình 18: Minh h a cách ch p nhọ ấ ận lời m i vào d án (1)ờ ự
Bước 2: Click vào mục thông báo, ch n ọ để xác nh n tham gia vào d án ậ ự hoặc để từ chối
Hình 19: Minh h a các ch p nhọ ấ ận lời m i vào d án (2)ờ ự
3 Phân bi t GIT và GITHUB ệ
- là m t ph n m m qu n lý mã ộ ầ ề ả nguồn m ở
- là hệ thống qu n lý các phiên ả bản (VCS) mã ngu n ồ
- là một dịch vụ miễn phí và tr phí ả
- là d ch v máy chị ụ ủ lưu trữ các kho ch a Git ứ
Quản lý The Linux Foundation Microsoft Corporation
Phạm vi được cài đặt trên Local được host trên web
Tính năng không có tính năng quản lý người dùng tích hợp tính năng quản lý người dùng
Công c và ụ tích h p ợ có r t ít công c thi t l p ấ ụ ế ậ có nhi u công c tích h p ề ụ ợ
CÁC L ỆNH CƠ BẢ N TRONG GITHUB
Git init
- Lệnh này được dùng để tạo GIT repository
- Lệnh đầu tiên người dùng chạy trên Git, được sử dụng để tạo một kho lưu trữ trống và mới Nó được sử dụng để tạo một dự án hiện có như một dự án Git Một số lệnh Git chạy bên trong kho lưu trữ, nhưng lệnh init có thể chạy bên ngoài kho lưu trữ
- Để tạo một kho lưu trữ trống, mở dòng lệnh trên thư mục mong mu n và ch y l nh init ố ạ ệ như sau: git init
Git clone
Bản sao git là một tiện ích dòng lệnh được sử dụng để tạo bản sao cục bộ của kho lưu trữ từ xa Tiện ích này truy cập kho lưu trữ thông qua một địa chỉ URL.
- Lệnh: git clone < URL kho lưu trữ >
Bước 1: Mở GitHub và điều hướng đến trang chính của dự án cần tải về
Bước 2: Chọn vào ph n Code, nh p vào ầ ấ Sao chép ho c t i xuặ ả ống
Hình 20: Minh h a l nh git clone ọ ệ
Bước 3: Chọn phần Sao chép với HTTPs sao chép URL b n sao và ả cho kho lưu trữ Đối với kho lưu trữ trống, người dùng có thể sao chép URL trang kho lưu trữ từ trình duyệt
Bước 4: Mở Terminal và thay đổi thư mục làm việc hiện tại thành vị trí mong muốn, nơi muốn tạo bản sao cục b cộ ủa kho lưu trữ
Hình 21: Minh h a ch n v ọ ọ ị trí lưu bản sao c c bụ ộ
Bước 5: Sử d ng l nh git clone vụ ệ ới URL kho lưu trữ để tạo bản sao của kho lưu trữ ừ t xa Xem lệnh dưới đây: git clone + link vừa sao chép
Hình 22: Minh h a quá trình Clone code v ọ ề kho lưu trữ
Git add
- Lệnh git add là m t l nh chuy n ti p thộ ệ ể ế ẳng, có tác d ng thêm các ile vào khu v c dàn ụ ự dựng (có th thêm m t ho c nhi u ile cùng m t lúc trong vùng dàn dể ộ ặ ề ộ ựng)
- Cú pháp : git add
- Có thể thêm nhiều file trong Git, nhưng người dùng phải ch y l nh add nhi u l n Git ạ ệ ề ầ tạo điều kiện cho chúng ta với một tùy chọn duy nhất của lệnh thêm mà chúng ta có thể thêm t t c các ile có s n cùng m t lúc ấ ả ẵ ộ
- Cú pháp: git add -A hoặc là git add
Git reset ( liên quan git add)
- Chúng ta có th hoàn tác thao tác thêm git ể
- Cú pháp : git reset
Git commit
- Git commit có tác d ng ghi l i sụ ạ ự thay đổ ủa các files trong source code (add, update, i c remove) kèm với messages tương ứng Ta có th xem l i l ch s c a các lể ạ ị ử ủ ần commit trước đó để biết có sự thay đổi gì trong source code
- Cú pháp : git commit -m “commit message”
Git push
- Lệnh git push sẽ đẩy dữ liệu t local repository lên remote repository (git server) D ừ ữ liệu ở đây bao gồm các files thay đổi, các branch mới, các thông tin chung về git
- Cú pháp : git push
Ví d : v i master là dụ ớ ữ liệ ừu t local repository, origin là remote repository:
Hình 23: Minh h a l nh git push (1) ọ ệ
- Nếu chưa tồn tại remote trên server ta làm như sau: git remote add origin git push origin (git push origin master)
Hình 24: Minh h a l nh git push (2)ọ ệ
Git log
- Là m t công cộ ụ tiện ích để xem lại và đọc lịch sử của mọi thứ xảy ra v i mớ ột kho lưu trữ Nhiều tùy ch n có thể ọ được s d ng v i nhử ụ ớ ật ký git để làm cho l ch s cị ử ụ ể hơn th
- Nói chung, git log là m t b n ghi các commit ộ ả
Hình : Minh h a l nh git log 25 ọ ệ
Git branch
- Khi s d ng git, ử ụ người dùng có th t o ra nhi u nhánh (branch) khác nhau Câu l nh ể ạ ề ệ này dùng để kiểm tra các nhánh hiện tại
- Trong b t k d án Git nào, ấ ỳ ự người dùng u có th xem toàn b các branches b ng đề ể ộ ằ cách điền lệnh sau trong command line: git branch
- Nếu không có branch m i, nó s không hi n k t qu trong terminal T o m t branch ớ ẽ ệ ế ả ạ ộ như sau: git branch [new_branch]
- Sau đó, người dùng sẽ cần chuyển tới development branch Để làm vậy, chạy lệnh command sau: git checkout [new_branch]
- Kết qu s thông báo cho chúng ta biả ẽ ết chúng ta đã chuyển tới branch mới: Switched to branch ‘New branch’
- Nếu chúng ta mu n xoá branch kh i Git, ố ỏ người dùng có th làm v y b ng l nh sau: ể ậ ằ ệ git branch -d [branch_name]
- Tuy nhiên, để làm vậy, người dùng không được ở trong branch muốn xóa Nên chúng ta sẽ chuyển tới branch master và từ đó, xóa branch chúng ta vừa tạo: git checkout master git branch -d New branch
Lưu ý: Với Git thì nhánh chính là master, với Github thì nhánh chính đã đổi thành main
Git remote
- Để kiểm tra c u hình c a máy ch t xa, hãy ch y l nh ấ ủ ủ ừ ạ ệ git remote L nh này cho phép ệ truy c p k t n i gi a remote và local N u b n mu n xem s t n tậ ế ố ữ ế ạ ố ự ồ ại ban đầu của kho lưu trữ nhân bản của mình, hãy s dụng lệnh ử git remote
Git status
Lệnh "git status" giúp nắm bắt tình trạng hiện tại của kho lưu trữ và dàn dựng Lệnh này hiển thị các tệp đã theo dõi, chưa theo dõi và các thay đổi Tuy nhiên, lệnh này không hiển thị băm hoặc thông tin cam kết nào.
- H u hầ ết, nó đượ ử ụng để hiểc s d n thị trạng thái của Git Add và Git commit Chúng ta có thể kiểm tra xem các thay đổi và file có được theo dõi hay không
Hình : Minh h a l nh git status 26 ọ ệ
Git pull
- Lệnh git pull s t i dẽ ả ữ liệu(đồng b ) t remote repository v local repository ộ ừ ề
- Cú pháp: git pull
Git con ig
- Lệnh này dùng để thiết lập một số thông tin liên quan bao gồm tên người dùng, password và email trong main configuration file.
- Cú pháp: git config global user.name git config global user.password git config global user.email
Lưu ý: Git cho phép người dùng ẩn danh, do đó, người dùng vẫn có thể dùng username giả để đẩy commit lên repo trên Github.
Git merge
- Git merge được dùng khi ta muốn gộp hai branch lại với nhau, thao tác này thường dùng để merge branch khác vào branch master trước khi push lên remote repository, hoặc merge hai branch thành một để giải quyết chung một task
- Cú pháp: git merge hoặc git merge
- Khi sử dụng lệnh hợp nhất trong Git, chỉ có nhánh hiện tại được cập nhật để phản ánh sự hợp nhất, còn nhánh đích sẽ không bị ảnh hưởng Điều này có nghĩa rằng, Git Merge thường được sử dụng kết hợp với git checkout để chọn nhánh hiện tại và git branch để xóa nhánh nguồn đã lỗi thời.
GIT CONFLICT CÁCH XỬ LÝ CONFLICT TRONG KHI MERGE
Giải quy ết các xung độ ả t x y ra trong quá trình h p nh t ợ ấ
- GitHub Copilot là một công cụ AI được phát triển bởi GitHub, OpenAI và Microsoft
- GitHub Copilot đề xuất các đoạn code dựa trên những ngữ cảnh và thông tin trong file bạn đang chỉnh sửa Nó đã được huấn luyện trên văn bản tự nhiên và mã nguồn từ các nguồn công khai, bao gồm mã trong các kho lưu trữ công khai trên GitHub.
Hình 31: Minh họa tính năng đề xuất code của GitHub Copilot
Đối với cá nhân: theo tháng: 10$/tháng, theo năm: 100$/năm
Đối với doanh nghiệp: 19$/người/tháng
Tự động hóa lập trình đoạn mã lặp lại giúp tiết kiệm thời gian và công sức đáng kể Trợ lý lập trình GitHub Copilot sẽ tự động cung cấp các đoạn mã mẫu lặp lại, giúp lập trình viên tập trung vào các tác vụ phức tạp hơn Điều này nâng cao hiệu suất và chất lượng lập trình, cho phép các nhà phát triển tạo ra các ứng dụng phần mềm hiệu quả và sáng tạo hơn Bằng cách tận dụng sức mạnh của AI, GitHub Copilot giúp hợp lý hóa quy trình phát triển phần mềm, giải phóng các lập trình viên khỏi các nhiệm vụ lập trình thủ công và cho phép họ tập trung vào các sáng kiến có giá trị cao hơn.
Cải thiện tốc độ code, tăng năng suất công việc cho lập trình viên: với các đề xuất mã thông minh của GitHub Copilot, người dùng có thể tăng tốc đáng kể quá trình mã hóa
Giảm lỗi trong quá trình code: Giúp người dùng giảm khả năng xảy ra lỗi cú pháp và lỗi chính tả
Nâng cao chất lượng mã nguồn: Bằng cách tận dụng các đề xuất của Copilot, người dùng có thể đảm bảo rằng mã của mình tuân thủ các tiêu chuẩn và tránh các lỗi phổ biến Khi viết một dòng mã, Copilot sẽ hiển thị cho người dùng danh sách các phương án thay thế, cho phép người dùng có thể chọn một trong số chúng nếu nghĩ nó tốt hơn.
GITHUB COPILOT
GitHub Copilot là gì?
- GitHub Copilot là một công cụ AI được phát triển bởi GitHub, OpenAI và Microsoft
GitHub Copilot đề xuất mã dựa trên ngữ cảnh và thông tin trong tệp bạn đang chỉnh sửa Công cụ này được huấn luyện bằng văn bản tự nhiên và mã nguồn từ các nguồn mở, bao gồm cả mã trong kho lưu trữ công khai trên GitHub.
Hình 31: Minh họa tính năng đề xuất code của GitHub Copilot
Đối với cá nhân: theo tháng: 10$/tháng, theo năm: 100$/năm
Đối với doanh nghiệp: 19$/người/tháng
Ưu điểm, nhược điểm
Tự động điền mã lặp lại: Việc phải code liên tục những đoạn mã lặp đi lặp lại nhiều lần rất tốn thời gian và năng lượng tinh thần GitHub Copilot sẽ là người trợ lý tuyệt vời tạo ra những đoạn mẫu mã lặp lại giúp cho người dùng
Cải thiện tốc độ code, tăng năng suất công việc cho lập trình viên: với các đề xuất mã thông minh của GitHub Copilot, người dùng có thể tăng tốc đáng kể quá trình mã hóa
Giảm lỗi trong quá trình code: Giúp người dùng giảm khả năng xảy ra lỗi cú pháp và lỗi chính tả
Nâng cao chất lượng mã nguồn: Bằng cách tận dụng các đề xuất của Copilot, người dùng có thể đảm bảo rằng mã của mình tuân thủ các tiêu chuẩn và tránh các lỗi phổ biến Khi viết một dòng mã, Copilot sẽ hiển thị cho người dùng danh sách các phương án thay thế, cho phép người dùng có thể chọn một trong số chúng nếu nghĩ nó tốt hơn
Sự tự động và khả năng tương thích: Trong một số trường hợp, GitHub Copilot có thể đề xuất mã không đúng ý người dùng hoặc không tuân theo các quy ước lập trình đúng Người dùng cần kiểm tra và chỉnh sửa mã được đề xuất bởi Copilot theo ý muốn
Giới hạn ngôn ngữ lập trình: Hiện tại, GitHub Copilot chỉ hỗ trợ một số ngôn ngữ lập trình như Python, JavaScript, TypeScript, Ruby, Go và phần nào Java.
Cách cài đặt GitHub Copilot miễn phí cho sinh viên
Bước 1: Xác định trạng thái sinh viên của bạn trên GitHub:
- Truy cập vào trang GitHub Student Developer Pack và nhấn “Sign up for Student Developer Pack”
Hình 32: Minh họa giao diện GitHub Student Developer Pack
- Trả lời những câu hỏi để xác minh trạng thái sinh viên.
Hình 33: Minh họa giao diện xác minh trạng thái sinh viên
- Gửi đơn đăng ký của bạn và chờ phê duyệt Quá trình này có thể mất vài giờ hoặc vài ngày tùy thuộc vào số lượng đơn đăng ký.
Bước 2: Kích hoạt gói GitHub Copilot cho sinh viên
- Truy cập vào trang GitHub Copilot Nhấn “Start my free trial”
Hình 34: Minh họa trang chủ GitHub Copilot
- Cấp các quyền cần thiết Copilot truy cập tài khoản GitHub của bạn
Hình 35: Mình họa thiết lập quyền cho tài khoản
Bước 3: Cài đặt Copilot trên VS code
- Mở Extensions Tìm kiếm “GitHub Copilot” và nhấn “install”.
Hình 36: Minh họa Install GitHub Copilot
- Liên kết với tài khoản
Hình 37: Minh họa liên kết tài khoản GitHub Copilot với GitHub
- Sau khi cài đặt xong, hãy khởi động lại Visual Studio Code để những thay đổi có hiệu lực.
Qua bài báo cáo có thể thấ ấy r t rõ s quan tr ng c a Git và GitHub trong qu n lý d ự ọ ủ ả ự án phát tri n ph n m m Git giúp ki m soát và qu n lý mã ngu n dể ầ ề ể ả ồ ễ dàng hơn, đặc bi t là ệ trong môi trường làm việc nhóm Dưới đây là một số điểm quan trọng về Git và GitHub mà bài báo của chúng em đã đề ập: c
1 S quan tr ng c a qu n lý phiên b n: D án phát tri n ph n m m ngày càng phự ọ ủ ả ả ự ể ầ ề ức tạp và mã nguồn dày đặc Git giúp b n theo dõi và ki m soát các phiên b n c a mã ngu n, ạ ể ả ủ ồ từ đó tránh xung đột và lỗi
2 H p tác trong nhóm: Git và GitHub cho phép các thành viên trong nhóm chia s và ợ ẻ cộng tác trên cùng m t d án m t cách hi u quộ ự ộ ệ ả Điều này giúp tăng tốc độ công vi c và ệ nâng cao chất lượng mã nguồn.
3 Theo dõi tiến độ công vi c: Git và GitHub cung c p khệ ấ ả năng theo dõi tiến độ công việc c a t ng thành viên trong dủ ừ ự án Điều này giúp qu n lý d án biả ự ết ai đang làm gì và có th phân công nhi m v m t cách hi u qu ể ệ ụ ộ ệ ả
4 Sửa đổi và c p nh t d dàng: Git cho phép sậ ậ ễ ửa đổi và c p nh t mã ngu n m t cách ậ ậ ồ ộ linh ho t Nó giúp gi m thiạ ả ểu xung đột trong quá trình code và giúp b o vả ệ chất lượng mã nguồn
5 L i ích cho doanh nghi p: S d ng Git và GitHub có th giúp gi m thi u thi t hợ ệ ử ụ ể ả ể ệ ại cho công ty do qu n lý mã ngu n và công vi c dả ồ ệ ễ dàng hơn.
Nhìn chung, bài báo cáo của nhóm đã tập trung vào vi c gi i thiệ ớ ệu và thúc đẩy sự hiểu biết v ề Git và GitHub, đồng thời th ểhiệ ự ậ ụn s t n t y và h p tác trong công vi c nhóm ợ ệ Điều này s có l i ích l n cho d án phát tri n ph n m m và c cho vi c phát tri n kẽ ợ ớ ự ể ầ ề ả ệ ể ỹ năng cá nhân c a các thành viên trong nhóm ủ