Final Submission #14666
open[Dương Đình Long Nhật] Git Foundation Final Submission
100%
Description
Git Foundation Final Submission before Vibe Code¶
Thông tin sinh viên:¶
Họ và tên : Dương Đình Long Nhật
Lớp : KHD6
Github Repo : https://github.com/Ounhat07/AKA-Lab---Git-Safety-Foundation-Before-Vibe-Coding.git
Quá trình học Mincrosoft Learn:¶
Em đã hoàn thành 2 Learning path:
- GitHub Foundations Part 1 of 2
- GitHub Foundations Part 2 of 2
Minh chứng được đính kèm trong Redmine issue
Quá trình thực hành:¶
h3. Commit
Em đã thực hiện hơn 10 commit có ý nghĩa trong quá trình thực hành Git và GitHub.
h3. Branch
-
feature/update-readme
-
feature/add-git-command-list
-
practice/conflict-demo
-
feature/practice-pr-new
-
feature/practice-pr-2
h3. Các Pull Request đã thực hiện
Em đã tạo 2 Pull Request để thực hành GitHub Flow:
-
Pull Request #1: Add pull request practice section
Branch: feature/practice-pr-new
Nội dung: chỉnh sửa README.md để thực hành tạo pull request
Trạng thái: Merged -
Pull Request #2: Add pull request practice 2
Branch: feature/practice-pr-2
Nội dung: tiếp tục thực hành tạo branch, commit, push và pull request
Trạng thái: Merged
h3. Thực hành Conflict
Trong bài này, em đã thực hành tình huống conflict trên file README.md.
Cụ thể, em tạo thay đổi ở nhánh main, sau đó tạo/thao tác trên nhánh practice/conflict-demo và sửa nội dung liên quan đến cùng một phần trong file README.md. Khi Git phát hiện có thay đổi xung đột, em đã xử lý conflict bằng cách mở file README.md, chọn nội dung cần giữ lại, xóa các ký hiệu conflict và commit lại kết quả sau khi xử lý.
h3. Thực hành Revert / Rollback
Trong bài này, em đã thực hành rollback/revert để hiểu cách xử lý khi có thay đổi sai trong project.
Cách làm là tạo một thay đổi sai trong file README.md, sau đó sử dụng lệnh git revert để đảo ngược commit đó. Revert giúp tạo một commit mới để hủy tác động của commit sai, nhưng vẫn giữ lại lịch sử làm việc trong Git.
Qua phần này, em hiểu rằng khi AI sinh code lỗi hoặc khi mình chỉnh sửa làm hỏng project, có thể dùng git log để xem lịch sử commit, tìm commit cần xử lý và dùng git revert để quay lại trạng thái ổn định một cách an toàn.
h3. README.md
README.md đã được cập nhật với các nội dung được đính kèm trong issue.
h2. 3. Mô tả quá trình thực hành repository
h3. Giai đoạn 1: Khởi tạo kho lưu trữ ban đầu (Nhánh main)
-
Khởi tạo Git tại local bằng lệnh git init tạo file README.md và thực hiện commit đầu tiên.
-
Tạo cấu trúc file chính main.py và file logic calculator.py (chứa hàm cộng add), đóng gói thành các commit tiếp theo.
-
Kết nối repository với GitHub qua lệnh git remote add origin và đẩy mã nguồn lên bằng lệnh git push -u origin main --force
h3. Giai đoạn 2: Phát triển tính năng mới trên nhánh độc lập
-
Tạo và chuyển sang nhánh feature-subtract để phát triển hàm trừ.
-
Thêm hàm subtract vào calculator.py, cập nhật gọi hàm trong main.py và tạo file kiểm thử test_app.py với các commit riêng biệt.
-
Đẩy nhánh lên GitHub, tạo Pull Request #1 gộp vào main và chọn Merge pull request trên giao diện web.
h3. Giai đoạn 3: Tạo và xử lý tình huống xung đột (Conflict)
-
Quay lại nhánh main ở local khi chưa kéo code mới về. Cố tình sửa file main.py thành thông báo bảo trì và commit lại.
-
Chạy lệnh gộp nhánh feature-subtract vào main tại local. Git báo cảnh báo CONFLICT trong file main.py.
-
Mở file main.py, xóa bỏ các ký tự xung đột (<<<<<<<, =======, >>>>>>>), chọn lọc giữ lại nội dung code chuẩn của cả hai bên rồi chạy lệnh git add và commit để hoàn tất xử lý xung đột.
h3. Giai đoạn 4: Thực hành luồng Pull Request thứ hai
-
Tạo và chuyển sang nhánh feature-multiply để phát triển hàm nhân.
-
Viết thêm hàm multiply vào calculator.py, tạo commit và đẩy nhánh lên GitHub.
-
Tạo Pull Request #2 trên giao diện web và bấm xác nhận Confirm merge để gộp vào nhánh main.
h3. Giai đoạn 5: Đồng bộ an toàn và thực hành hoàn tác (Revert)
-
Quay lại nhánh main ở local, chạy lệnh git pull origin main --rebase để đồng bộ code sạch từ trên web về máy.
-
Giả lập lỗi bằng cách tạo thư mục đệm rác pycache cùng file bên trong rồi thực hiện add và commit.
-
Sử dụng lệnh git revert HEAD --no-edit để tự động tạo commit mới phủ quyết và xóa bỏ thư mục rác nhưng vẫn giữ nguyên lịch sử.
-
Đẩy toàn bộ lịch sử commit hoàn chỉnh lên GitHub bằng lệnh git push origin main --force
Tôi sẽ dùng Git như thế nào khi Vibe Code với AI?¶
Khi Vibe Code với AI, em sẽ không sửa trực tiếp trên nhánh main.
Em sẽ tạo branch riêng cho từng tính năng hoặc từng thử nghiệm. Sau khi AI sinh code, em sẽ kiểm tra lại code, chạy thử, commit từng bước rõ ràng và tạo pull request trước khi merge.
Nếu AI sinh code lỗi hoặc làm hỏng project, em có thể dùng Git để xem lịch sử thay đổi và revert về trạng thái ổn định.
Các ảnh chứng minh được đính kèm trong file này.
Em xin phép được nộp bài và mong được nhận đánh giá của Thầy.
Files
No data to display