Hướng Dẫn Sao Lưu Dự Án Unity Sang Ổ Cứng Rời Bằng Git Bare Repository
Tài liệu này tổng hợp toàn bộ quy trình, lệnh chuẩn xác, và các lỗi thường gặp trong quá trình thiết lập một Bare Git Repository trên ổ cứng di động (USB) để làm nơi sao lưu (backup) an toàn cho dự án Unity.
1. Giới thiệu về Bare Repository
- Bare Repository là một kho Git không có thư mục làm việc (working directory), tức là không có code trực tiếp để xem hay sửa. Nó chỉ chứa nội dung của thư mục ẩn
.git. - Mục đích chính của nó là để nhận code push lên từ các máy tính khác, hoạt động tương tự như máy chủ GitHub/GitLab cục bộ trên ổ cứng của bạn.
2. Quy trình thiết lập chuẩn xác (Từng bước)
Bước 1: Kích hoạt Git LFS cho dự án Unity (Local)
Dự án Unity chứa rất nhiều file nhị phân lớn (ảnh, âm thanh, 3D model). Để Git xử lý tối ưu, bắt buộc cần có Git LFS.
- Mở Terminal (Git Bash) tại thư mục dự án Unity của bạn (VD:
D:\Unity-Projects\GLW). - Tải template
.gitattributeschuẩn của GameCI cho Unity. Chạy lệnh kích hoạt LFS:
1
git lfs installĐưa file cấu hình vào lịch sử Git:
1 2
git add .gitattributes git commit -m "Thêm cấu hình gitattributes cho Unity và Git LFS"
Bước 2: Tạo Bare Repo trên ổ cứng di động
- Cắm ổ cứng rời vào máy (Giả sử máy nhận là ổ
E:). Mở Git Bash, di chuyển tới thư mục muốn đặt backup (VD:
E:\Git):1
cd /e/GitTạo thư mục chứa Repo (Quy ước đuôi
.git).[!IMPORTANT] Lưu ý cực kỳ quan trọng: Trong Git Bash phải dùng dấu gạch chéo xuôi
/, không dùng dấu gạch chéo ngược\của Windows.1
mkdir -p "GLW.git"
Di chuyển vào thư mục vừa tạo và khởi tạo Bare Repo:
1 2
cd "GLW.git" git init --bare
Bước 3: Liên kết dự án Unity với ổ cứng (Thêm Remote)
- Quay lại Terminal (Git Bash) ở thư mục dự án Unity (
D:\Unity-Projects\GLW). Liên kết remote (đặt tên remote là
glwhoặcusb):1
git remote add glw "E:/Git/GLW.git"Kiểm tra lại xem remote đã nhận đúng chưa:
1
git remote -v(Kết quả in ra 2 dòng fetch và push trỏ về
E:/Git/GLW.gitlà thành công).
Bước 4: Xử lý lỗi bảo mật phân quyền (Dubious Ownership)
Khi đẩy code lên ổ cứng định dạng exFAT/FAT32, Git sẽ báo lỗi "dubious ownership" vì ổ cứng này không lưu trữ phân quyền user như NTFS, khiến Git nghĩ đây là kho vô chủ và chặn lại vì lý do bảo mật.
Cách khắc phục: “Bảo lãnh” thư mục đó đưa vào danh sách an toàn:
1
git config --global --add safe.directory "E:/Git/GLW.git"
Bước 5: Push code sang ổ cứng
Khi mọi thứ đã thiết lập xong, gõ lệnh push tất cả các nhánh (branches) và thẻ (tags) để backup trọn vẹn 100% dự án:
1
2
git push glw --all
git push glw --tags
(Chờ quá trình hoàn tất là dự án của bạn đã được backup an toàn vào ổ cứng).
3. Các lỗi thường gặp (Troubleshooting)
3.1. Lỗi tạo sai tên thư mục (Bị dính liền tên)
- Triệu chứng: Khi chạy lệnh
mkdir -p E:\Git\GLW.gitbằng Git Bash, thư mục sinh ra lại tên làGitGLW.git. - Nguyên nhân: Git Bash coi dấu
\là ký tự thoát (escape). Nó bỏ qua dấu\và nối chữGitvớiGLWthànhGitGLW. - Cách khắc phục: Luôn sử dụng dấu gạch chéo xuôi
/hoặc dấu ngoặc kép khi thao tác đường dẫn trên Git Bash. (VD:mkdir -p "E:/Git/GLW.git").
3.2. Lỗi “fatal: ‘E:BackupGitGLW.git’ does not appear to be a git repository”
- Triệu chứng: Báo lỗi không tìm thấy repo remote khi push.
- Nguyên nhân: Khi chạy lệnh
git remote add, bạn đã dùng backslash (\) làm sai lệch đường dẫn. - Cách khắc phục:
- Xóa cấu hình remote sai:
1
git remote remove glw
- Thêm lại remote chuẩn:
1
git remote add glw "E:/Git/GLW.git"(Có thể dùng
git remote set-url glw "E:/Git/GLW.git"để ghi đè).
- Xóa cấu hình remote sai:
3.3. Lỗi quên khởi tạo Bare Repo
- Triệu chứng: Dù đường dẫn Remote đã đúng, nhưng khi push vẫn báo
Could not read from remote repository. - Nguyên nhân: Chưa chạy lệnh
git init --bareở bên trong thư mục trên ổ cứng. - Cách khắc phục: Dùng File Explorer đi tới thư mục trên ổ cứng, chuột phải chọn Open Git Bash here và chạy lệnh
git init --bare.