

















Preview text:
lOMoAR cPSD| 59285474
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN ----- ----- 1
Thành phố Hồ Chí Minh – 2024 lOMoAR cPSD| 59285474
BÁO CÁO MÔN KỸ NĂNG NGHỀ NGHIỆP
LỚP SS004.P14 --- NHÓM 01 --- HK 1/ 2024
Đề tài: Git & GitHub
Giảng viên hướng dẫn: ThS. Thái Huy Tân
Sinh viên thực hiện: Lê Ngọc Phương Thảo - 23521467 Trần Trân Châu - 23520147 Nguyễn Thị Mỹ Nư - 23521127 Đỗ Tuyết Nhi - 23521105 MỤC LỤC
Chương 1. Giới thiệu về Git, GitHub và giao diện cơ bản........................................4
1. GitHub respository.........................................................................................4
Chương 2. Các tập lệnh cơ bản của Git.....................................................................4
2.1. Các lệnh làm việc trong môi trường cục bộ................................................4
2.2. Các lệnh làm việc trong môi trường online.................................................5
Chương 3. Giao diện sử dụng....................................................................................5
3.1. Tab <> Code.................................................................................................5
3.2. Tab Issues......................................................................................................6
3.3. Tab Pull Request..........................................................................................7
3.4. Tab Actions...................................................................................................8
3.5. Tab Projects................................................................................................10
3.6. Tab Wiki......................................................................................................10 2 lOMoAR cPSD| 59285474
3.7. Tab Security................................................................................................11
3.8. Tab Insights...........................................................................................11 Chương
4. Một số chức năng khác.........................................................................13
4.1. Tab <> Code................................................................................................13
4.2. Tab Issues..............................................................................................15 Chương
5. Tổng kết................................................................................17
TÀI LIỆU THAM KHẢO........................................................................................18 DANH MỤC HÌNH ẢNH
Hình 1. Tạo repository “Hello Word”4
Hình 2. Hình ảnh tab <> Code
Hình 3. Các chức năng của tab <> Code 6
Hình 4. Hình ảnh tab Issue6 6
Hình 5. Hình ảnh danh sách các issue 6
Hình 6. Hình ảnh thanh tìm kiếm và lọc issue6 Hình 7. Github Issue7
Hình 8. Hình ảnh tab Pull Request7
Hình 9. Các chức năng của tab Pull Request8
Hình 10. Hình ảnh tab Projects 0
Hình 11. Các chức năng của tab Projects0
Hình 12. Hình ảnh tab Wiki0
Hình 13. Các chức năng của tab Wiki11
Hình 14. Hình ảnh tab Security11 3 lOMoAR cPSD| 59285474
Hình 15. Hình ảnh tab Insights11
Hình 16. Các chức năng của tab Insights12
Hình 17. Chức năng Contributors12
Hình 18. Chức năng Traffic
Hình 19. Hình ảnh tab Releases14
Hình 20. Giao diện tab Releases5
CHƯƠNG I. GIỚI THIỆU VỀ GIT, GITHUB VÀ GIAO DIỆN CƠ BẢN Github repository
Hình 1. Tạo repository “Hello Word”
CHƯƠNG 2. CÁC TẬP LỆNH CƠ BẢN CỦA GIT
2.1. Các lệnh làm việc trong môi trường cục bộ
cd: thay đổi folder làm việc. git init: khởi tạo một repository (kho mã nguồn)
mới. git log: xem toàn bộ những hoạt động đã được thực hiện trên repository. git
switch / git branch: đổi nhánh làm việc, tương tác với nhánh. git add: thêm file
vào staging area (hàng chờ). git diff / git status: kiểm tra tình trạng file (đã chỉnh 4 lOMoAR cPSD| 59285474
sửa, đang trong hàng chờ,..). git commit: ghi nhân các thay đổi trên file, lưu lại
phiên bản hiện tại. git restore: hoàn tác những thay đổi. git merge: nhập các
nhánh vào nhánh chính. git reset / git clean: hoàn tác lệnh git add gần nhất.
git rebase: di chuyển nhánh theo ý muốn, tránh việc nhập các nhánh vào với nhau
gây ra sự cố ngoài ý muốn.
2.2. Các lệnh làm việc trong môi trường online
git clone: sao chép toàn bộ repository về máy tính.
git fetch: tải về máy một nhánh từ repository khác, xem lại những thay đổi
trước khi nhập vào project hiện tại. git pull: cập nhật những thay đổi mới nhất
của repository đã có trên máy. git push: đăng tải repository cục bộ lên một server lưu trữ online.
CHƯƠNG 3. GIAO DIỆN SỬ DỤNG
3.1. Tab <> Code
Hình 2. Hình ảnh tab <> Code Chức năng:
- Danh sách file và thư mục: Tab Code hiển thị toàn bộ thư mục và file trong
repository. Người dùng có thể nhấp vào bất kỳ file hoặc thư mục nào để xem nội dung chi tiết.
- Clone or download: Nút xanh "Code" cung cấp 3 lựa chọn để sao chép
đường dẫn về máy tính: •
Clone with HTTPS: Sử dụng đường dẫn HTTPS để clone project về máy cục bộ. •
Clone with SSH: Clone qua SSH nếu bạn đã thiết lập SSH key trên GitHub. •
Download ZIP: Tải toàn bộ repository dưới dạng file ZIP. 5 lOMoAR cPSD| 59285474
Hình 3. Chức năng của tab <> Code 3.2. Tab Issues
Hình 4. Hình ảnh tab Issues
Tab này dành cho việc quản lý và theo dõi các lỗi (bugs), tính năng mới
(feature requests), hoặc các vấn đề khác của dự án.
Chức năng và cách tương tác: •
Tạo một issue mới: Nhấp vào nút "New Issue" để tạo một
issue mới, mô tả vấn đề hoặc đề xuất tính năng. Có thể đính
kèm hình ảnh hoặc mã nguồn để minh họa rõ hơn. •
Danh sách các issue: Hiển thị danh sách tất cả các issue đã được tạo, gồm
cả issue đang mở và đã đóng
Hình 5. Hình ảnh danh sách các issue •
Tìm kiếm và lọc issue: Sử dụng thanh tìm kiếm hoặc bộ lọc để tìm các issue
cụ thể theo nhãn (label), người tham gia (assignee), hoặc milestone
Hình 6. Hình ảnh thanh tìm kiếm và lọc issue 6 lOMoAR cPSD| 59285474
Với Github issue bạn có thể miêu tả được toàn bộ vấn đề với: •
Issue title, description: mô tả về vấn đề •
Labels: đánh nhãn dễ dàng phân loại và lọc •
Milestone: đánh dấu các issue vào 1 giai đoạn của project hay 1 đợt phát triển •
Assignees: gán cho thành viên trong repo Comment, feedback. Hình 7. Github issue 3.3. Tab Pull Requests
Hình 8. Hình ảnh tab Pull Request
Tab này chứa danh sách các pull request (PR) - các yêu cầu tích hợp mã
(code) vào nhánh chính của dự án. Tab này có nghĩa là bên A thông báo với
những người khác rằng A đã có những thay đổi của Branch lên Repository chính.
Chức năng và cách tương tác: •
Tạo pull request mới: Nhấp vào nút "New pull request" để yêu cầu đóng
góp mã của bạn vào dự án. Pull request sẽ so sánh sự khác biệt giữa nhánh
mã bạn đang đóng góp và nhánh chính của repository. •
Kiểm tra và quản lý pull requests: Người dùng có thể kiểm tra các pull
request đã mở và đã đóng, bao gồm các thay đổi mã, bình luận, và đánh giá mã của người khác. 7 lOMoAR cPSD| 59285474
Hình 9. Chức năng của tab Pull Request
Các bước để tạo Pull Request trong GitHub:
1. Chọn Pull Request và New Pull Request trong Repo (hoặc chọn compare & pull request)
2. Chọn nhánh muốn hợp nhất các thay đổi từ nhánh mình push lên.
3. Thêm tiêu đề và mô tả vào pull request.
4. Nhấn nút Create pull request hoặc Create draft pull request. 3.4. Tab Actions
GitHub Actions là một công cụ tích hợp CI/CD cho phép tự động hóa quy
trình phát triển, như kiểm thử (test), triển khai (deploy), và nhiều nhiệm vụ khác.
Chức năng và cách tương tác: •
Workflow: Bạn có thể thiết lập các workflow để tự động kiểm tra mã khi có
pull request hoặc push mới vào repository. •
Xem trạng thái workflow: Các workflow đã kích hoạt sẽ được hiển thị
trong tab này, bao gồm trạng thái chạy (đang chạy, thành công, thất bại). Thực hành:
1. Tạo 1 tệp Workflow
2. Xác định Workflow: Trong tệp workflow, xác định các sự kiện kích hoạt
workflow (ví dụ: push, pull_request). Thành phần quan trọng: Workflows (Quy
Workflows là quy trình làm việc được viết ở trong 8 lOMoAR cPSD| 59285474
file .YAML, nó bao gồm các bước cụ thể, định rõ
events và gồm nhiều jobs. trình)
Công việc là một tập hợp các bước thực hiện một số
công việc cụ thể (build, deploy) Jobs (Công việc)
Là hành động trong mỗi job như checkout, chạy test hay deploy Steps (Bước)
Là các thành phần tái sử dụng và được chia sẻ trong
GitHub Actions.(vd: actions/setup-node@v2: cài đặt Actions (Hành môi trường Node.js) động)
Sự kiện kích hoạt một workflow mặc định sẽ phản
ứng. Ví dụ: push code, tạo pull request, hay tạo release. Events (Sự kiện) Runners (Máy chạy) Là môi trường chạy.
Đây là kết quả của các job hoặc bước trong
workflow mà người dùng có thể tái sử dụng trong các jpb khác. Artifacts (Tài liệu) Matrix Builds (Xây dựng ma trận)
Cho phép xây dựng chương trình trên nhiều môi trường khác nhau.
3. Commit và push 4. Xem Workflow
Chuyển đến tab “Actions” trên repository GitHub của bạn để xem trạng thái
của các chạy của workflow.
5. Tùy chỉnh và lặp lại
Tùy chỉnh workflow của bạn dựa trên nhu cầu cụ thể của dự án của bạn. Bạn
có thể sử dụng các hành động đã định nghĩa sẵn từ GitHub Marketplace
hoặc tùy chỉnh của riêng bạn. 9 lOMoAR cPSD| 59285474 3.5. Tab Projects
Hình 10. Hình ảnh tab Projects
Tab này giúp quản lý công việc và tổ chức các task trong dự án, sử dụng bảng Kanban.
Chức năng và cách tương tác: •
Tạo project board: Bạn có thể tạo các bảng để theo dõi tiến độ công việc,
tạo các cột tương ứng với các trạng thái như "To Do", "In Progress", và "Done". •
Thêm task vào board: Kéo thả các issue hoặc pull request vào các cột để sắp xếp công việc.
Hình 11. Chức năng của tab Projects 3.6. Tab Wiki
Hình 12. Hình ảnh tab Wiki
Tab này cho phép tạo và quản lý tài liệu hướng dẫn chi tiết cho dự án.
Chức năng và cách tương tác: •
Tạo tài liệu: Bạn có thể tạo các trang wiki để giải thích về kiến trúc dự án,
cách cài đặt, hoặc bất kỳ tài liệu nào cần thiết cho người dùng. •
Chỉnh sửa trang wiki: Mọi người có thể tham gia chỉnh sửa hoặc đóng góp
tài liệu nếu dự án cho phép. 10 lOMoAR cPSD| 59285474 11 lOMoAR cPSD| 59285474
Hình 13. Chức năng của tab Wiki 3.7. Tab Security
Hình 14. Hình ảnh tab Security
Tab này tập trung vào các tính năng bảo mật của repository, bao gồm quản lý
các cảnh báo bảo mật và kiểm tra tính an toàn của mã nguồn.
Chức năng và cách tương tác:
Cảnh báo bảo mật: Kiểm tra các thư viện phụ thuộc có lỗ hổng bảo mật và
cung cấp các đề xuất vá lỗi. 3.8. Tab Insights
Hình 15. Hình ảnh tab Insights
Tab này cung cấp các thông tin thống kê về hoạt động của dự án, như số lần
commit, pull request, hoặc issue được tạo theo thời gian.
Hình 16. Các chức năng của tab Insights
Chức năng và cách tương tác:
Contributors: Thống kê số lượng đóng góp từ các thành viên. 12 lOMoAR cPSD| 59285474
Hình 17. Chức năng Contributors
Traffic: Hiển thị lượng truy cập vào repository.
Hình 18. Chức năng Traffic
Dependency graph: Đồ thị phụ thuộc của các thư viện được sử dụng trong dự án.
CHƯƠNG 4. MỘT SỐ CHỨC NĂNG KHÁC 4.1. Tab Release 13 lOMoAR cPSD| 59285474
Đây là nơi quản lý và công bố các phiên bản chính thức của dự án. Giúp lưu trữ tệp
nhị phân và cung cấp thông tin chi tiết về các thay đổi giữa các phiên bản. Mỗi lần
phát hành sẽ gắn liền vs 1 tag. Cách tạo: • Truy cập tab Release
Trong tab Code, ở cột bân phải sẽ có liên kết nhỏ màu xanh có tên Release dưới phần
mô tả. Nhấp vào đó để tới trang quản lý Release.
Hình 19. Hình ảnh tab Releases
Cách điền các thông tin cần thiết: •
Tag versions: Chọn hoặc tạo mới 1 tag. Tag này xác định vị trí trong lịch sử
commit của dự án mà người dùng muốn gắn vs phiên bản phát hành. •
Release title: Đặt tiêu đề. Thường là số phiên bản. •
Description: Mô tả chi tiết về những thay đổi của phiên bản này. •
Attach binaries(Tùy chọn): Đính kèm các tệp nhị phân hay tệp cài đặt. 14 lOMoAR cPSD| 59285474
Hình 20. Giao diện tab Releases
Chức năng liên quan đến Releases: •
Pre-releases: phát hành bản thử nghiệm cho người dung nội bộ. •
Changelog tự động: khi một release được tạo ra, Github sẽ tự động gợi ý danh
sách các pull request và commit liên quan
Nó thường nằm trong tệp có tên CHANGELOG.md trong repository.
Draft release: Release ở bản nháp. 4.2. Tab tags
Là 1 công cụ đánh dấu 1 điểm cụ thể trong lịch sử commit của Repo. Thông thường
để chỉ ra các phiên bản phần mềm quan trọng. Công dụng:
1. Đánh dấu phiên bản phát hành:
• Tags thường đi kèm với Releases đánh dấu phiên bản phát hành phần mềm.
Điều này giúp cho việc xác định thời điểm mà phiên bản quan trọng đó được tạo ra. 15 lOMoAR cPSD| 59285474
2. Quản lý phiên bản:
• Khi tạo ra một tag, nó sẽ cho biết rằng điểm đó trong lịch sử commit là một
phiên bản ổn định và có thể phát hành. Chúng ta có thể truy cập lại bất cứ lúc
nào để xem hoặc so sánh mã nguồn.
3. Làm tài liệu cho quá trình phát triển:
• Vì tính chất quản lý phiên bản nên giúp các lập trình viên hoặc người dung dễ
dàng theo dõi lịch sử phát triển và tìm hiểu các thay đổi qua các phiên bản khác nhau. Có 2 loại tag trong Git: 1. Lightweight tag
Một dạng tag nhẹ gắn vs commit hiện tại. Lệnh: $ git tag 2. Annotated tag
Dạng tag có thêm ghi chú, ngày tháng và thông tin tác giả.
Lệnh: git tag -a -m "Message for the tag"
CHƯƠNG 5. TỔNG KẾT
Trong thời đại phát triển nhanh như hiện nay, nhu cầu thông tin ngày
càng tăng cao trong mọi hoạt động Việc thúc đẩy việc tạo ra các sản
phẩm có tính đổi mới phụ thuộc vào việc trao đổi thông tin. Sản phẩm
ngày càng có giá trị. Thành tựu khoa học công nghệ thông tin có thể
ứng dụng vào hoạt động quản lý. Quá trình này nhằm mục đích giải
quyết các nhiệm vụ một cách nhanh chóng và chính xác. Ngay cả đối
với các dự án nhỏ nhất và lớn nhất, việc áp dụng Git vào quản lý kho
dữ liệu là điều quan trọng.
Những lợi ích của Git & GitHub có thể được nhìn thấy trong báo cáo
này. Việc quản lý nỗ lực đóng góp của những người tham gia dự án trở
nên dễ dàng hơn nhờ Git & GitHub. Git & GitHub góp phần giảm xung
đột, hay sự bất cẩn của một thành viên dự án vô tình làm hỏng toàn bộ 16 lOMoAR cPSD| 59285474
dự án. Việc doanh nghiệp mất đi phần mềm là một mất mát lớn, điều không ai mong muốn. 17 lOMoAR cPSD| 59285474
TÀI LIỆU THAM KHẢO
1. https://blog.haposoft.com/github-va-cac-chuc-nang-chinh/
2. https://www.toponseek.com/blogs/github-actions-la-gi/#:~:text=Chuy
%E1%BB%83n%20%C4%91%E1%BA%BFn%20tab
%20%E2%80%9CActions%E2%80%9D%20tr%C3%AAn,trong%20qu %C
3%A1%20tr%C3%ACnh%20th%E1%BB%B1c%20thi. 3. https://docs.github.com/en
4. Git - giteveryday Documentation (git-scm.com)
5. Basic Git Commands | Atlassian Git Tutorial
6. https://docs.github.com/en/repositories/releasing-projects-on-github/managing- releases-in-a-repository
7. https://www.hatica.io/blog/github-tag-release/
8. https://docs.github.com/en/repositories/releasing-projects-on-github/
automatically-generated-release-notes 18