Trong bài viết này, mình sẽ hướng dẫn các bạn làm thế nào để chuyển đổi một thư mục trong một GIT repository bất kỳ thành một GIT repository mới nhé các bạn.
Ở đây, mình sử dụng GIT trên Window.
OK, mình có một repository với nội dung như sau:
Bây giờ, nhu cầu của mình là tách thư mục của project coffee thành một repository mới. Vậy giờ mình sẽ làm thế nào?
Chúng ta có 5 bước để làm việc này:
Đầu tiên các bạn hãy mở Git Bash và di chuyển đến thư mục của repository.
Trong ví dụ này, mình sẽ di chuyển đến thư mục webbotsolutions.net và mở Git Bash
Tiếp theo mình sẽ thực hiện câu lệnh sau:
1 |
git filter-branch --subdirectory-filter <folder_name> HEAD -- --all |
với <folder_name> là tên thư mục project mà các bạn muốn chuyển đổi sang một GIT repository mới, để loại bỏ tất cả các tập tin thư mục có trong GIT repository hiện tại.
Ở đây, mình sẽ thực hiện câu lệnh như sau:
Đưa thư mục này lên thành root:
1 |
git reset --hard |
Rồi tiếp tục thực hiện các câu lệnh sau:
1 |
git gc --aggressive |
1 |
git prune |
Bước cuối cùng chúng ta cần làm là xóa bỏ GIT remote repository URL đang được cấu hình cho repository hiện tại bằng câu lệnh sau:
1 |
git remote rm origin |
Đến đây là chúng ta đã hoàn thành việc chuyển đổi rồi đó các bạn, kết quả như sau:
Repository hiện tại chỉ là local GIT repository, nếu các bạn muốn đưa nó lên remote GIT repository thì hãy tham khảo bài viết này.
manh_uet@30
Em thấy nếu làm theo cách của anh ở trên thì thư mục chứa repository hiện tại bị mất và thay bằng thư mục con. Vậy có cách nào khi chuyển thư mục con trong repository thành repository mới mà không làm mất các thư mục và các file không anh nhỉ?
Khanh Nguyen
Repository hiện tại em duplicate lên là được mà.