Điều này cũng có thể diễn giải rằng "Mọi commit của tôi có thông điệp Update vi.md
hay gì đó tương tự".
Nếu ai đó bảo bạn điều này hoặc bạn thấy mọi thông điệp commit đều giống nhau, điều đó có nghĩa là bạn không để lại thông điệp commit có ý nghĩa khi bạn di chuyển, sửa đổi, và/hoặc xoá các tệp trên Giao diện Web GitHub.
Một thông điệp commit có ý nghĩa sẽ giúp bất cứ ai hiểu được khái quát những gì bạn thay đổi trong commit đó mà không cần phải xem GitHub diff. Thông điệp commit bị giới hạn ở 72 ký tự, nên bạn cần tóm gọn lại. Nếu bạn gặp khó khăn trong việc tóm tắt, bạn có thể cần phải tách commit. Hãy luôn nhớ rằng Update vi.md
hay gì đó tương tự không mang ý nghĩa gì cả, bởi vì sẽ không có ai hiểu được bạn thay đổi những gì, hay bạn đã sửa đổi bài viết nào.
Để xử lý việc này, bạn cần sử dụng Giao diện Web GitHub:
osu-wiki
của bạn.base fork
và head fork
không hiển thị, nhấn vào đường dẫn compare across forks
.head fork
thành fork của bạn.compare
thành cái branch có vấn đề.base fork
thành fork của bạn.base
thành branch bạn mới tạo.Create pull request
.Create pull request
lần nữa.Merge pull request
.Squash and merge
.Squash and merge
lần nữa.Confirm squash and merge
.ppy/osu-wiki
repo.Create pull request
. Bạn đã xong việc sửa các commit. Nếu bạn đã xử lý xong các đánh giá từ pull request bị đóng và bạn chắc rằng pull request mới này sẵn sàng được merge, hãy nhờ ai đó merge hộ bạn.Về lý thuyết, đây là cách tốt nhất để squash commits từ một branch chỉ trong phạm vi sử dụng Giao diện Web Github. Việc squash commit trên GitHub Desktop là bất khả thi.
Chú ý: master
là branch chính của fork repo của bạn. Nó nên chứa một bản sao sạch từ nhánh master
của repo osu-wiki
mà không chứa bất cứ thay đổi nào của bạn.
Khi bạn tạo một fork từ repo osu-wiki
, bạn đã tạo một snapshot về các nội dung tại đúng khoảnh khắc đó. May mắn thay, GitHub có sẵn tính năng cho phép bạn giữ branch của mình luôn được cập nhật.
osu-wiki
của bạn.Fetch upstream
và chọn Fetch and merge
.Cập nhật branch lỗi thời
Bây giờ branch của bạn đã được cập nhật đồng bộ với upstream repository!
Giải pháp này hoạt động được ở hầu hết các trường hợp, mặc dù khả năng của tính năng này cũng có hạn. Ví dụ, nó không cho phép bạn ghi đè những thay đổi không mong muốn trên branch, mà nó chỉ merge từ upstream master
branch.
Nếu bạn gặp vấn đề gì khi đang sử dụng công cụ GitHub hoặc bạn muốn ghi đè lên nội dung trong branch của bạn, bạn có thể sử dụng workflow (luồng công việc) viết bởi những người đóng góp cho osu! wiki.
Actions
.Workflows
, tìm Sync from osu! upstream
.Run workflow
và điền vào các thiết lập:GitHub Actions Workflow - Chạy Workflow
master
.true
: tạo một branch có tên backup-{tên branch của bạn}
để sao lưu trước khi thay đổi.false
(mặc định): không tạo sao lưu.true
: thay thế nội dung trong branch của bạn bằng một bản sao sạch của branch master
từ ppy/osu-wiki
.false
(mặc định): merge thay đổi của bạn cùng với bản sao sạch từ ppy/osu-wiki
.Run Workflow
và chờ nó hoàn thành. Nếu bạn tò mò xem công cụ này hoạt động ra sao, nhấn lại vào Sync from osu! upstream
.GitHub Actions Workflow - Tổng quát về Workflow
Có hai lý do khiến việc này xảy ra:
Tuỳ vào mức độ nghiêm trọng của các conflict, bạn có hai lựa chọn để khắc phục.
Resolve conflicts
, nhấn vào đó. Trình duyệt sẽ mở ra một phiên bản hơi khác của trình soạn thảo web.
<<<<<<<
đến =======
là những thay đổi của bạn, còn mọi thứ từ =======
đến >>>>>>> master
là thứ đang có ở ppy/master
branch.<<<<<<<
, =======
, và >>>>>>> master
.Mark as resolved
(bạn chỉ có thể làm điều này khi mọi phần conflict trong tệp đã được xử lý).Resolve conflicts
bị khoá vì nó quá phức tạp đối với GitHub, bạn đã gặp xui xẻo và cần phải cập nhật branch của bạn và thực hiện lại các thay đổi của bạn.