Làm cách nào để xóa thư mục làm việc của tôi trong git?Làm cách nào để xóa thư mục làm việc cục bộ của tôi trong git?
Trả lời
Để thiết lập lại một tập tin cụ thể để tình trạng cuối cùng cam kết (để loại bỏ những thay đổi không bị giam trong một tập tin cụ thể):
này được đề cập trong git status
đầu ra:
(use "git checkout -- <file>..." to discard changes in working directory)
Để thiết lập lại toàn bộ kho lưu trữ trạng thái cam kết cuối cùng: (! Nhưng không thư mục .git/
)
git reset --hard
Để gỡ bỏ những file untracked, tôi thường chỉ cần xóa tất cả các file trong bản sao làm việc, sau đó làm git reset --hard
mà lá nó chỉ với các tập tin cam kết.
Cách tốt hơn là sử dụng git clean
: (Cảnh báo:. Sử dụng -x
cờ như dưới đây sẽ gây git để xóa các tập tin bị bỏ qua)
git clean -d -x -f
sẽ gỡ bỏ những file untracked, bao gồm cả thư mục (-d
) và các tệp bị bỏ qua bởi git (-x
). Thay thế đối số -f
bằng -n
để thực hiện khô hoặc -i
cho chế độ tương tác và nó sẽ cho bạn biết nội dung sẽ bị xóa.
liên kết liên quan:
- git-reset man page
- git-clean man page
- git ready "cleaning up untracked files" (như Marko đăng)
- Stackoverflow câu hỏi "How do you remove untracked files from your git working copy?"
Lưu ý rằng theo mặc định, 'git clean -d' không đủ. Bạn cũng cần thêm cờ -f (force). Ngoài ra, nếu bạn muốn xóa thêm các tệp bị bỏ qua bởi .gitignore, thì bạn cần phải thêm tùy chọn -x. Đây là những gì nó trông giống như: git clean -xdf –
Tôi nghĩ rằng bạn có nghĩa là "thư mục làm việc" thay vì "kho" trong câu "Tôi thường chỉ xóa tất cả các tệp trong kho lưu trữ". –
@Dr. Người tốt Điểm, đó là rõ ràng hơn, chỉnh sửa – dbr
git clean -df
Edit: Nó không cũng được quảng cáo nhưng git clean
thực sự tiện dụng. Git Ready có nice intro to git clean
.
Cập nhật: loại bỏ các
x
cờ dựa trên gợi ý trong các bình luận bên dưới
Tôi khuyên bạn không nên sử dụng tham số '-x' vì nó sẽ xóa tất cả nội dung gitignored. Giả sử bạn có một thư mục có tên ''gitignored'' được thêm vào' .gitignore' và bạn lưu trữ các tệp của mình phải an toàn, bạn cũng sẽ xóa chúng bằng tham số '-x' – Highmastdon
Rất tiếc. 'git clean -xdf' cũng loại bỏ' .gitignore', và tôi không chú ý trước lần commit kế tiếp. Tôi sẽ không bỏ qua '.gitignore' nữa. :) – Grastveit
@Grastveit 'git clean -xdf' sẽ xóa' .gitignore' nếu và chỉ khi nó chưa được thêm vào, do đó hoạt động như dự định. – Marko
Tất cả các câu trả lời cho đến nay vẫn giữ cam kết của địa phương. Nếu bạn thực sự nghiêm trọng, bạn có thể loại bỏ tất cả các địa phương cam kết và tất cả các chỉnh sửa địa phương bằng cách thực hiện:
git reset --hard origin/branchname
Ví dụ:
git reset --hard origin/master
Điều này làm cho kho địa phương của bạn chính xác phù hợp nhà nước của nguồn gốc (trừ các tập tin không được theo dõi).
Nếu bạn vô tình làm điều này sau khi chỉ đọc lệnh, và không phải những gì nó :), hãy sử dụng git reflog để tìm các cam kết cũ của bạn.
Tên chi nhánh có thực sự cần thiết không? Đối với tôi 'git reset --hard' chỉ đơn giản là làm việc cho nhánh đang làm việc hiện tại mà không có tên chi nhánh. – RBT
Nếu không có chi nhánh, nó không rõ ràng cam kết địa phương. – dbn
ohh. được. Quan sát của tôi chỉ liên quan đến các tệp được sửa đổi cục bộ và mới được thêm vào. Vì vậy, nếu tôi nhận được bạn một cách chính xác, nếu bất kỳ tập tin được tổ chức hoặc đã được cam kết trong chi nhánh địa phương (không đẩy như được nêu ra) sẽ không được làm sạch nếu tôi không sử dụng tên chi nhánh một cách rõ ràng. Chính xác? – RBT
Bạn có thể tạo một cam kết chứa bản sao làm việc trống.
Đây là cách tiếp cận an toàn, không phá hủy vì nó không liên quan đến việc sử dụng bất kỳ cơ chế đặt lại bạo lực nào. Trước tiên, bạn ẩn tất cả nội dung được quản lý với git checkout empty
, sau đó bạn được tự do xem xét và xóa nội dung không được quản lý theo cách thủ công.
## create and initialize a temporary repo with an empty working copy
(
mkdir ./temp-repo && cd ./temp-repo && git init
touch ./temp-file && git add . && git commit -m "almost empty"
git rm ./temp-file && git commit -m "empty"
git tag empty
)
## fetch the history from the temporary repo
git remote add empty ./temp-repo && git fetch --tags empty && git remote rm empty
gvfs-trash ./temp-repo ## delete the temporary repo
## clear the working copy
git checkout empty
Bây giờ, bản sao làm việc của bạn phải rõ ràng về mọi nội dung được quản lý. Tất cả những gì còn lại là các tệp không được quản lý và chính thư mục .git
.
Để tái cư bản sao làm việc của bạn ...
git checkout master ## or whatever branch you will be using
Để thiết lập lại một tập tin cụ thể như tình trạng git gợi ý:
git checkout <filename>
Để thiết lập lại một thư mục
git checkout <foldername>/*
Để chuyển sang một nhánh khác, loại bỏ tất cả các thay đổi không được cam kết (ví dụ như kết quả xử lý kỳ lạ của kết thúc dòng Git):
git checkout -f <branchname>
Tôi đã có một bản sao làm việc với hàng trăm tập tin thay đổi (nhưng trống git diff --ignore-space-at-eol
) mà tôi không thể thoát khỏi tắt với bất kỳ các lệnh tôi đọc ở đây, và git checkout <branchname>
sẽ không làm việc, hoặc là - trừ khi có tùy chọn -f
(hoặc --force
).
' git checkout -p'? – badp
- 1. Git bỏ qua thư mục đã xóa cục bộ
- 2. git clean -f -d đã xóa các tệp khỏi thư mục cục bộ của tôi
- 3. Tôi không thể xóa thư mục làm việc svn cục bộ này trên windows
- 4. Tìm Bản sửa đổi Git của Thư mục Làm việc Thiếu Thư mục .git
- 5. đầu ra git ls-tree của thư mục làm việc?
- 6. Làm cách nào để R nhận ra thư mục làm việc của bạn làm thư mục làm việc?
- 7. Đặt Apache htdocs/thư mục con làm thư mục làm việc GIT
- 8. cách khôi phục thư mục đã xóa cục bộ?
- 9. Làm cách nào để xóa tất cả các tệp trong repo git của tôi và cập nhật/đẩy từ repo git cục bộ của tôi?
- 10. Xóa Thư mục Không gian làm việc của Chrome DevTools
- 11. Làm cách nào để xóa chi nhánh địa phương của tôi trong GIT?
- 12. Làm cách nào để tạo thư mục trong thư mục làm việc hiện tại, trong Java
- 13. Tại sao git tiếp tục xóa thư mục của tôi?
- 14. làm cách nào để xóa thư mục trống trong git-svn?
- 15. Làm cách nào để giữ MSDeploy xóa các thư mục phụ trong dự án của tôi?
- 16. Đặt lại vùng làm việc cục bộ của tôi
- 17. Làm cách nào để duyệt thư mục ảo cục bộ trong C#?
- 18. Làm cách nào để tôi đặt thư mục làm việc thành "thư mục giải pháp" trong c + +
- 19. Cách tìm đường dẫn của kho lưu trữ git cục bộ khi tôi có thể trong thư mục con
- 20. Làm cách nào để đặt chế độ chính mặc định trong tệp thư mục cục bộ?
- 21. Làm cách nào để tôi có thể gửi email đến thư mục cục bộ trong khi thử nghiệm?
- 22. Cách xóa tất cả các tệp trong kho lưu trữ Git không nằm trong thư mục làm việc?
- 23. Làm cách nào để ẩn thư mục dự án .git?
- 24. Làm cách nào để làm cho máy chủ cục bộ của tôi nhạy cảm?
- 25. làm cách nào để tôi xác định tệp/thư mục đã được thêm hoặc xóa trong cam kết git?
- 26. Tải tập tin vào thư mục làm việc của tôi
- 27. Không thể xem các tệp mới được thêm vào thư mục làm việc git của tôi
- 28. Khác biệt thư mục làm việc với Git Extensions
- 29. Tại sao "xóa cục bộ, xóa đến khi cập nhật" của một thư mục xung đột?
- 30. Làm cách nào để tôi có thể thêm một tệp mà không thay đổi thư mục làm việc hiện tại?
Cách tiếp cận tương tác của người dùng: git clean -i -fd –