1.0k

Tôi có 2 thư mục trên kho GitHub của mình. Tôi muốn xóa một trong số họ. Làm thế nào tôi có thể làm điều đó mà không xóa và tạo lại toàn bộ kho lưu trữ?

|
1.9k

Xóa thư mục khỏi git và local

Bạn có thể kiểm tra 'master' với cả hai thư mục;

git rm -r one-of-the-directories
git commit -m "Remove duplicated directory"
git push origin <your-git-branch> (typically 'master', but not always)

Xóa thư mục khỏi git nhưng KHÔNG cục bộ

Như đã đề cập trong các bình luận, những gì bạn thường muốn làm là xóa thư mục này khỏi git nhưng không xóa nó hoàn toàn khỏi hệ thống tập tin (cục bộ)

Trong trường hợp đó sử dụng:

git rm -r --cached myFolder
|
  • 1

    Tôi đã có tình huống chính xác như vậy. Khi tôi thử git rm -r myFoldernó hoạt động, nhưng cũng xóa mọi thứ khỏi thư mục "MyFolder". Phải hoàn nguyên mọi thứ trong thư mục "MyFolder" và sau đó cam kết.

    – Huỳnh Hương Nhi 13:12:56 25/10/2012
  • 1

    @Justin Để chỉ xóa khỏi git và để nguyên hệ thống tệp, hãy sử dụnggit rm -r --cached myFolder

    – Hoàng Thảo Trang 06:28:47 16/11/2012
  • 1

    @acoder không biết một cách trực tiếp trên web, có thể có API, nếu không thì sao chép repo git rm -r myFoldervà đẩy

    – Nguyễn Lan Vy 00:22:20 05/04/2016
  • 1

    Thông báo lỗi tôi nhận được là: fatal: pathspec 'thư mục' không khớp với bất kỳ tệp nào.

    – Tạ Kim Sơn 21:14:12 08/09/2016
  • 1

    @ user2441441 Tôi gặp lỗi này khi bật lên khi tôi đang cố xóa một thư mục / tệp không được thêm vào repo

    – Lý Long Phi 13:36:03 13/10/2016
243

Để xóa thư mục / thư mục chỉ từ kho git chứ không phải từ cục bộ, hãy thử 3 lệnh đơn giản.


Các bước để loại bỏ thư mục

git rm -r --cached FolderName
git commit -m "Removed folder from repository"
git push origin master

Các bước để bỏ qua thư mục đó trong các lần xác nhận tiếp theo

Để bỏ qua thư mục đó từ các lần xác nhận tiếp theo, hãy tạo một tệp trong thư mục gốc có tên .gitignore và đặt tên thư mục đó vào đó. Bạn có thể đặt bao nhiêu tùy thích

tập tin .gitignore sẽ trông như thế này

/FolderName

|
66

Nếu, vì một số lý do, những gì karmakaze nói không hoạt động, bạn có thể thử xóa thư mục bạn muốn sử dụng hoặc với trình duyệt hệ thống tệp của bạn (ví dụ: trong Windows File Explorer). Sau khi xóa thư mục, ban hành lệnh:
git add -A
và sau
git commit -m 'deleting directory'
đó
git push origin master.

|
20

Bạn có thể thử điều này: git rm -rf <directory_name>

Nó sẽ buộc xóa thư mục.

|
16

Nếu bạn loại bỏ các tệp trong thư mục ( git rmnhư các câu trả lời khác giải thích), thì thư mục đó không còn tồn tại khi có liên quan đến git. Bạn không thể cam kết một thư mục trống, bạn cũng không thể xóa một thư mục.

Điều này không giống như lật đổ mà bạn phải nói rõ ràng svn rm emptyfolder/và tình cờ tại sao mantrang git mô tả chính nó là "trình theo dõi nội dung ngu ngốc"

Câu trả lời về "Làm cách nào để thêm thư mục trống vào kho git" liên kết đến Câu hỏi thường gặp về chủ đề này :

Hiện tại việc thiết kế chỉ số git (khu vực tổ chức) chỉ cho phép các tệp được liệt kê và không ai đủ thẩm quyền để thực hiện thay đổi để cho phép các thư mục trống đã quan tâm đủ về tình huống này để khắc phục.

Thư mục được thêm tự động khi thêm tệp bên trong chúng. Đó là, các thư mục không bao giờ phải được thêm vào kho lưu trữ và không được theo dõi riêng.

Bạn có thể nói " git add <dir>" và nó sẽ thêm các tập tin vào đó.

Nếu bạn thực sự cần một thư mục tồn tại trong thanh toán, bạn nên tạo một tệp trong đó. .gitignore hoạt động tốt cho mục đích này; bạn có thể để trống, hoặc điền vào tên của các tệp bạn muốn hiển thị trong thư mục.

|
6

Chuyển đến Thư mục git của bạn sau đó nhập lệnh sau: rm -rf < Tên thư mục >

Sau khi xóa thư mục, hãy xác nhận các thay đổi bằng cách: git commit -m "Thông điệp cam kết của bạn"

Sau đó, chỉ cần đẩy các thay đổi trên thư mục GIT từ xa: git push origin < Tên chi nhánh >

|
4

Tôi thường sử dụng git add --allđể loại bỏ các tập tin / thư mục từ kho lưu trữ từ xa

rm -r folder_name
git add --all
git commit -m "some comment"
git push origin master

master có thể được thay thế bởi bất kỳ chi nhánh khác của kho lưu trữ.

|
4

Bạn có thể xóa thư mục cục bộ và sau đó đẩy, như sau:

git rm -r folder_name
git commit -m "your commit"
git push origin master
|
3

để xóa các thư mục trống

Tôi muốn xóa một thư mục trống (thư mục) tôi đã tạo, git không thể xóa nó, sau một số nghiên cứu tôi đã học được Git không theo dõi các thư mục trống. Nếu bạn có một thư mục trống trong cây làm việc của mình, bạn chỉ cần xóa nó bằng

rm -r folderName

Không cần liên quan đến Git.

|
2

Bạn có thể sử dụng Cây nguồn Attlasian (Windows) ( https://www.atlassian.com/software/sourcetree/overview ). Chỉ cần chọn tệp từ cây và nhấn nút "Xóa" ở trên cùng. Các tệp sẽ bị xóa khỏi kho lưu trữ cục bộ và cơ sở dữ liệu git cục bộ. Rồi Cam kết, rồi đẩy.

|
  • 1

    Đây là những gì tôi làm là tốt. Đã làm cho nó thực sự dễ dàng để làm, mặc dù, học lệnh git là một điều tốt để biết.

    – Dương Ðức Phi 12:46:37 26/03/2018
1

Lệnh git đầu tiên cần biết bạn là ai trước khi xóa bất cứ điều gì

  1. git init
  2. git config user.name "someone"
  3. git config user.email "someone@someplace.com"
  4. git rm -r
  5. git commit -m "xóa dir"
  6. git đẩy nguồn gốc
|
1

Một trong những đồng nghiệp của tôi đã đề xuất BFG Repo-Cleaner mà tôi nghĩ là mạnh mẽ. Nó không chỉ xóa dữ liệu không mong muốn mà còn xóa sạch kho lưu trữ của bạn khỏi mọi thông tin cam kết liên quan.

|

Câu trả lời của bạn (> 20 ký tự)

Bằng cách click "Đăng trả lời", bạn đồng ý với Điều khoản dịch vụ, Chính sách bảo mật and Chính sách cookie của chúng tôi.

Không tìm thấy câu trả lời bạn tìm kiếm? Duyệt qua các câu hỏi được gắn thẻ hoặc hỏi câu hỏi của bạn.