Làm cách nào để xóa các tệp cục bộ chưa được theo dõi khỏi cây làm việc hiện tại của bạn?
git-clean - Xóa các tệp chưa được theo dõi khỏi cây làm việc
Tóm tắc
git clean [-d] [-f] [-i] [-n] [-q] [-e <pattern>] [-x | -X] [--] <path>…
Sự miêu tả
Làm sạch cây làm việc bằng cách loại bỏ đệ quy các tệp không thuộc quyền kiểm soát phiên bản, bắt đầu từ thư mục hiện tại .
Thông thường, chỉ các tệp không xác định đối với Git mới bị xóa, nhưng nếu
-x
tùy chọn được chỉ định, các tệp bị bỏ qua cũng bị xóa. Ví dụ, điều này có thể hữu ích để loại bỏ tất cả các sản phẩm xây dựng.Nếu bất kỳ
<path>...
đối số tùy chọn nào được đưa ra, chỉ những đường dẫn đó mới bị ảnh hưởng.
Bước 1 là hiển thị những gì sẽ bị xóa bằng cách sử dụng -n
tùy chọn:
# Print out the list of files and directories which will be removed (dry run)
git clean -n -d
Bước sạch - hãy cẩn thận: thao tác này sẽ xóa các tệp :
# Delete the files from the repository
git clean -f
git clean -f -d
hoặcgit clean -fd
git clean -f -X
hoặcgit clean -fX
git clean -f -x
hoặcgit clean -fx
Lưu ý sự khác biệt về chữ hoa và chữ thường X
đối với hai lệnh sau.
Nếu clean.requireForce
được đặt thành "true" (mặc định) trong cấu hình của bạn, người ta cần chỉ định -f
nếu không sẽ không có gì thực sự xảy ra.
Một lần nữa xem git-clean
tài liệu để biết thêm thông tin.
Tùy chọn
-f
,--force
Nếu Git biến cấu hình clean.requireForce không được thiết lập là false, git sạch sẽ từ chối để chạy trừ khi có
-f
,-n
hoặc-i
.
-x
Không sử dụng các quy tắc bỏ qua tiêu chuẩn được đọc từ .gitignore (trên mỗi thư mục) và
$GIT_DIR/info/exclude
, nhưng vẫn sử dụng các quy tắc bỏ qua được cung cấp với-e
các tùy chọn. Điều này cho phép loại bỏ tất cả các tệp không được theo dõi, bao gồm cả các sản phẩm xây dựng. Điều này có thể được sử dụng (có thể kết hợp với git reset) để tạo một thư mục làm việc nguyên bản để kiểm tra một bản dựng sạch.
-X
Chỉ xóa các tệp bị Git bỏ qua. Điều này có thể hữu ích để xây dựng lại mọi thứ từ đầu, nhưng vẫn giữ các tệp được tạo thủ công.
-n
,--dry-run
Không thực sự loại bỏ bất cứ điều gì, chỉ hiển thị những gì sẽ được thực hiện.
-d
Loại bỏ các thư mục không được theo dõi ngoài các tệp chưa được theo dõi. Nếu một thư mục chưa được theo dõi được quản lý bởi một kho lưu trữ Git khác, nó sẽ không bị xóa theo mặc định. Sử dụng
-f
tùy chọn hai lần nếu bạn thực sự muốn xóa một thư mục như vậy.
Sử dụng git clean -f -d
để đảm bảo rằng các thư mục cũng được xóa.
Không thực sự loại bỏ bất cứ điều gì, chỉ hiển thị những gì sẽ được thực hiện.
git clean -n
hoặc là
git clean --dry-run
Loại bỏ các thư mục không được theo dõi ngoài các tệp chưa được theo dõi. Nếu một thư mục chưa được theo dõi được quản lý bởi một kho lưu trữ Git khác, nó sẽ không bị xóa theo mặc định. Sử dụng -f
tùy chọn này hai lần nếu bạn thực sự muốn xóa một thư mục như vậy.
git clean -fd
Sau đó, bạn có thể kiểm tra xem các tệp của mình có thực sự biến mất hay không git status
.
Tôi ngạc nhiên là không ai đề cập đến điều này trước đây:
git clean -i
Điều đó là viết tắt của tương tác và bạn sẽ có một cái nhìn tổng quan nhanh chóng về những gì sẽ bị xóa, cung cấp cho bạn khả năng bao gồm / loại trừ các tệp bị ảnh hưởng. Nhìn chung, vẫn nhanh hơn chạy bắt buộc --dry-run
trước khi làm sạch thực sự.
Bạn sẽ phải ném một -d
nếu bạn cũng muốn chăm sóc các thư mục trống. Cuối cùng, nó tạo ra một bí danh đẹp:
git iclean
Điều đó đang được nói, việc nắm giữ thêm các lệnh tương tác có thể gây mệt mỏi cho người dùng có kinh nghiệm. Những ngày này tôi chỉ sử dụnggit clean -fd
git-clean
- Xóa các tệp không được theo dõi khỏi cây làm việc
Để loại bỏ tất cả các tệp chưa được theo dõi, Cách đơn giản là thêm tất cả chúng trước và đặt lại repo như bên dưới
git add --all
git reset --hard HEAD
Nếu thư mục không được theo dõi là một kho lưu trữ git của riêng nó (ví dụ: mô-đun con), bạn cần sử dụng -f
hai lần:
git clean -d -f -f
Tôi thích git stash push -u
vì bạn có thể hoàn tác tất cả chúng với git stash pop
.
CHỈNH SỬA: Ngoài ra, tôi đã tìm thấy một cách để hiển thị tệp không được theo dõi trong kho lưu trữ (ví dụ git show [email protected]{0}^3
:)https://stackoverflow.com/a/12681856/338986
EDIT2: git stash save
không dùng nữa push
. Cảm ơn @ script-wolf.
Đây là những gì tôi luôn sử dụng:
git clean -fdx
Đối với một dự án rất lớn, bạn có thể muốn chạy nó một vài lần.
git-clean là những gì bạn đang tìm kiếm. Nó được sử dụng để loại bỏ các tệp không được theo dõi khỏi cây làm việc.
Nếu cần để xóa các tệp không được theo dõi khỏi thư mục con cụ thể,
git clean -f {dir_path}
Và cách kết hợp để xóa các tệp / tệp dir không được theo dõi và các tệp bị bỏ qua.
git clean -fxd {dir_path}
sau đó, bạn sẽ chỉ có các tệp được sửa đổi trong git status
.
Xóa tất cả các thư mục và tệp bổ sung trong repo + mô-đun con này
Điều này giúp bạn ở trạng thái giống như bản sao mới.
git clean -ffdx
Xóa tất cả các thư mục và tệp bổ sung trong repo này nhưng không xóa các mô-đun con của nó
git clean -fdx
Loại bỏ các thư mục bổ sung nhưng không phải tệp (ví dụ: thư mục bản ghi hoặc bản dựng)
git clean -fd
Xóa các thư mục bổ sung + các tệp bị bỏ qua (nhưng không phải các tệp mới được thêm vào)
Nếu tệp không bị bỏ qua và chưa được đăng ký thì tệp đó sẽ ở lại. Lưu ý chữ X viết hoa.
git clean -fdX
Chế độ tương tác mới
git clean
git clean -fd
xóa thư mục
git clean -fX
loại bỏ các tệp bị bỏ qua
git clean -fx
loại bỏ các tệp bị bỏ qua và không bị bỏ qua
có thể được sử dụng kết hợp tất cả các tùy chọn trên như
git clean -fdXx
kiểm tra hướng dẫn sử dụng git để được trợ giúp thêm
OK, dễ dàng xóa các tệp và thư mục không được theo dõi không mong muốngit
trong dòng lệnh, chỉ cần thực hiện như sau:
git clean -fd
Kiểm tra kỹ trước khi thực hiện vì nó sẽ xóa các tệp và thư mục mà không tạo bất kỳ lịch sử nào ...
Cũng trong trường hợp này, -f
là viết tắt của lực lượng và -d
viết tắt của thư mục ...
Vì vậy, nếu bạn chỉ muốn xóa tệp, bạn chỉ có thể sử dụng -f
:
git clean -f
Nếu bạn muốn xóa (thư mục) và tệp, bạn chỉ có thể xóa các thư mục và tệp không được theo dõi như sau:
git clean -fd
Ngoài ra, bạn có thể sử dụng -x
cờ để bao gồm các tệp bị git bỏ qua. Điều này sẽ hữu ích nếu bạn muốn xóa mọi thứ.
Và thêm -i
cờ, git yêu cầu bạn cho phép xóa từng tệp khi đang di chuyển.
Nếu bạn không chắc chắn và muốn kiểm tra mọi thứ trước tiên, hãy thêm -n
cờ.
Sử dụng -q
nếu bạn không muốn thấy bất kỳ báo cáo nào sau khi xóa thành công.
Tôi cũng tạo ra hình ảnh bên dưới để làm cho nó dễ nhớ hơn, đặc biệt là tôi đã thấy nhiều người -f
đôi khi nhầm lẫn giữa việc dọn dẹp thư mục hoặc trộn nó bằng cách nào đó!
Một cách tốt hơn là sử dụng: git clean
git clean -d -x -f
Thao tác này sẽ xóa các tệp không được theo dõi, bao gồm các thư mục (-d)
và tệp bị bỏ qua git (-x)
.
Ngoài ra, hãy thay thế -f
đối số bằng -n
để thực hiện một dry-run
hoặc -i
cho chế độ tương tác và nó sẽ cho bạn biết những gì sẽ bị loại bỏ.
Cách tiếp cận tương tác của người dùng:
git clean -i -fd
Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/arsdumpgenerator/s3/ [y/N]? y
-i cho tương tác
-f cho lực lượng
-d cho thư mục
-x cho các tệp bị bỏ qua (thêm nếu cần)
Lưu ý: Thêm -n hoặc --dry-run để chỉ kiểm tra xem nó sẽ làm gì.
Một cú hích cho tình huống như vậy mà tôi vừa phát minh và thử (hoạt động hoàn hảo):
git add .
git reset --hard HEAD
Hãy coi chừng! Đảm bảo cam kết bất kỳ thay đổi cần thiết nào (ngay cả trong các tệp không bị theo dõi) trước khi thực hiện việc này .
git clean -f -d -x $(git rev-parse --show-cdup)
áp dụng sạch cho thư mục gốc, bất kể bạn gọi nó ở đâu trong cây thư mục kho lưu trữ. Tôi sử dụng nó mọi lúc vì nó không buộc bạn phải rời khỏi thư mục nơi bạn đang làm việc và cho phép dọn dẹp & cam kết ngay từ nơi bạn đang ở.
Hãy chắc chắn rằng lá cờ -f
, -d
, -x
phù hợp với nhu cầu của bạn:
-d
Remove untracked directories in addition to untracked files. If an
untracked directory is managed by a different Git repository, it is
not removed by default. Use -f option twice if you really want to
remove such a directory.
-f, --force
If the Git configuration variable clean.requireForce is not set to
false, git clean will refuse to delete files or directories unless
given -f, -n or -i. Git will refuse to delete directories with .git
sub directory or file unless a second -f is given. This affects
also git submodules where the storage area of the removed submodule
under .git/modules/ is not removed until -f is given twice.
-x
Don't use the standard ignore rules read from .gitignore (per
directory) and $GIT_DIR/info/exclude, but do still use the ignore
rules given with -e options. This allows removing all untracked
files, including build products. This can be used (possibly in
conjunction with git reset) to create a pristine working directory
to test a clean build.
Có các cờ khác cũng có sẵn, chỉ cần kiểm tra git clean --help
.
Đối với tôi chỉ sau đây hoạt động:
git clean -ffdx
Trong tất cả các trường hợp khác, tôi nhận được thông báo "Bỏ qua Thư mục" cho một số thư mục con.
Nếu bạn chỉ muốn xóa các tệp được liệt kê là không được theo dõi bởi 'trạng thái git'
git stash save -u
git stash drop "[email protected]{0}"
Tôi thích điều này hơn là 'git clean' vì 'git clean' sẽ xóa các tệp bị git bỏ qua, vì vậy bản dựng tiếp theo của bạn sẽ phải xây dựng lại mọi thứ và bạn cũng có thể mất cài đặt IDE của mình.
Để biết những gì sẽ bị xóa trước khi thực sự xóa:
git clean -d -n
Nó sẽ xuất ra một cái gì đó như:
Sẽ xóa sample.txt
Để xóa mọi thứ được liệt kê trong đầu ra của lệnh trước:
git clean -d -f
Nó sẽ xuất ra một cái gì đó như:
Xóa sample.txt
Để xóa các tệp chưa được theo dõi, trước tiên bạn nên sử dụng lệnh để xem các tệp sẽ bị ảnh hưởng bởi quá trình dọn dẹp
git clean -fdn
Thao tác này sẽ hiển thị cho bạn danh sách các tệp sẽ bị xóa. Bây giờ để thực sự xóa các tệp đó, hãy sử dụng lệnh này:
git clean -fd
Luôn sử dụng -n
trước khi chạy lệnh thực sự vì nó sẽ hiển thị cho bạn những tệp nào sẽ bị xóa.
git clean -n -d
git clean -f -d
Theo mặc định, git clean
sẽ chỉ loại bỏ các tệp không được theo dõi không bị bỏ qua. Bất kỳ tệp nào khớp với một mẫu trong tệp .gitignore của bạn hoặc các tệp bỏ qua khác sẽ không bị xóa. Nếu bạn cũng muốn xóa các tệp đó, bạn có thể thêm a -x
vào lệnh clean.
git clean -f -d -x
Ngoài ra còn có chế độ tương tác có sẵn -i
với lệnh sạch
git clean -x -i
Nếu bạn không chắc chắn 100% rằng việc xóa công việc chưa cam kết của mình là an toàn, bạn có thể sử dụng lưu trữ thay thế
git stash --all
Nó cũng sẽ xóa thư mục của bạn nhưng cung cấp cho bạn sự linh hoạt để truy xuất các tệp bất kỳ lúc nào bằng cách sử dụng stash với apply hoặc pop . Sau đó, tại thời điểm sau, bạn có thể xóa kho lưu trữ của mình bằng cách sử dụng:
git stash drop // or clean
uggested Command for Remove Untracked Files khỏi git docs là git clean
git clean - Xóa các tệp chưa được theo dõi khỏi cây làm việc
Phương pháp đề xuất: Chế độ tương tác bằng cách sử dụng git clean -i
để chúng tôi có thể kiểm soát nó. hãy xem các tùy chọn khả dụng còn lại.
Tùy chọn có sẵn:
git clean
-d -f -i -n -q -e -x -X (can use either)
Giải trình:
1. -d
Loại bỏ các thư mục không được theo dõi ngoài các tệp chưa được theo dõi. Nếu một thư mục chưa được theo dõi được quản lý bởi một kho lưu trữ Git khác, nó sẽ không bị xóa theo mặc định. Sử dụng tùy chọn -f hai lần nếu bạn thực sự muốn xóa một thư mục như vậy.
2. -f, - lực lượng
Nếu biến cấu hình Git clean.requireForce không được đặt thành false, git clean sẽ từ chối chạy trừ khi được cung cấp -f, -n hoặc -i.
3. -i, - tương tác
Hiển thị những gì sẽ được thực hiện và làm sạch tệp một cách tương tác. Xem “Chế độ tương tác” để biết chi tiết.
4. -n, - chạy thử
Không thực sự loại bỏ bất cứ điều gì, chỉ hiển thị những gì sẽ được thực hiện.
5. -q, --quiet
Hãy im lặng, chỉ báo cáo lỗi chứ không thông báo các tệp được gỡ bỏ thành công.
6. -e, --exclude =
Ngoài các mẫu được tìm thấy trong .gitignore (trên mỗi thư mục) và $ GIT_DIR / info /lude, cũng coi các mẫu này nằm trong tập hợp các quy tắc bỏ qua có hiệu lực.
7. -x
Không sử dụng các quy tắc bỏ qua tiêu chuẩn được đọc từ .gitignore (trên mỗi thư mục) và $ GIT_DIR / thông tin / loại trừ, nhưng vẫn sử dụng các quy tắc bỏ qua được cung cấp với tùy chọn -e. Điều này cho phép loại bỏ tất cả các tệp không được theo dõi, bao gồm cả các sản phẩm xây dựng. Điều này có thể được sử dụng (có thể kết hợp với git reset) để tạo một thư mục làm việc nguyên bản để kiểm tra một bản dựng sạch.
8. -X
Chỉ xóa các tệp bị Git bỏ qua. Điều này có thể hữu ích để xây dựng lại mọi thứ từ đầu, nhưng vẫn giữ các tệp được tạo thủ công.
git clean
Lệnh Normal không xóa các tệp không được theo dõi với của tôi git version 2.9.0.windows.1
.
$ git clean -fdx # doesn't remove untracked files $ git clean -fdx * # Append star then it works!
git clean -f to remove untracked files from working directory.
Tôi đã trình bày một số điều cơ bản ở đây trong blog của mình, git-intro-basic-command
Để loại bỏ các tệp không được theo dõi:
git add .
git reset --hard HEAD
Chúng tôi có thể dễ dàng xóa các tệp chưa được theo dõi cục bộ khỏi cây làm việc git hiện tại bằng cách sử dụng các nhận xét git bên dưới.
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]
Thí dụ:
git reset --hard HEAD
Liên kết:
Dọn sạch kho lưu trữ git và tất cả các mô-đun con một cách đệ quy
Lệnh sau sẽ xóa kho lưu trữ git hiện tại và tất cả các mô-đun con của nó một cách đệ quy:
(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)
git clean -f
sẽ xóa các tệp chưa được theo dõi khỏi git hiện tại
git clean -fd
khi bạn muốn xóa các thư mục và tệp, thao tác này sẽ chỉ xóa các thư mục và tệp không được theo dõi
oh-my-zsh với zsh cung cấp những bí danh tuyệt vời đó thông qua plugin git. Chúng cũng có thể được sử dụng trong bash.
gclean='git clean -fd'
gpristine='git reset --hard && git clean -dfx'
gclean
loại bỏ các thư mục không được theo dõi ngoài các tệp chưa được theo dõi .gpristine
khôi phục cài đặt gốc các thay đổi cục bộ, xóa các thư mục chưa được theo dõi, tệp chưa được theo dõi và không sử dụng các quy tắc bỏ qua tiêu chuẩn được đọc từ .gitignore (mỗi thư mục) và $ GIT_DIR / thông tin / loại trừ, nhưng vẫn sử dụng các quy tắc bỏ qua được cung cấp với các tùy chọn -e. Điều này cho phép loại bỏ tất cả các tệp không được theo dõi, bao gồm cả các sản phẩm xây dựng. Điều này có thể được sử dụng (có thể kết hợp với git reset) để tạo một thư mục làm việc nguyên bản để kiểm tra một bản dựng sạch .Cate Blanchett đã bất chấp những lời khuyên hẹn hò điển hình khi cô gặp chồng mình.
Michael Sheen là một diễn viên phi lợi nhuận nhưng chính xác thì điều đó có nghĩa là gì?
Ngôi sao của Hallmark Colin Egglesfield chia sẻ về những cuộc gặp gỡ với người hâm mộ ly kỳ tại RomaDrama Live! cộng với chương trình INSPIRE của anh ấy tại đại hội.
Bạn sẽ phải phủi sạch đầu đĩa Blu-ray hoặc DVD để xem tại sao Northern Exposure trở thành một trong những chương trình nổi tiếng nhất của thập niên 90.
The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!
Bạn biết đấy, hai sản phẩm này là nguồn điện để làm sạch, riêng chúng. Nhưng cùng với nhau, chúng có một loạt công dụng hoàn toàn khác.
Thủy điện rất cần thiết cho lưới điện của Hoa Kỳ, nhưng nó chỉ tạo ra năng lượng khi có nước di chuyển. Bao nhiêu nhà máy thủy điện có thể gặp nguy hiểm khi các hồ và sông cạn kiệt?
Tóc tỉa từ các tiệm và các khoản quyên góp cá nhân có thể được tái sử dụng như những tấm thảm thấm dầu và giúp bảo vệ môi trường.
Trump và Giám đốc điều hành GM Mary Barra vào năm 2017. Kể từ khi tin tức nổ ra ngày hôm qua rằng General Motors đang cắt giảm việc làm ở Bắc Mỹ để chuẩn bị cho tương lai điện / xe tự hành / khủng khiếp có thể xảy ra của chúng tôi, gần như tất cả mọi người đã tự hỏi: Tổng thống Trump, người đã vận động tranh cử trên một nền tảng sẽ như thế nào của việc mang lại và duy trì việc làm ô tô của Mỹ, phải nói gì về điều này? Bây giờ chúng ta biết.
Bethesda cho biết ngày hôm nay trên Reddit, Fallout 76 sẽ có một bản vá lớn khác vào ngày 4 tháng 12, sẽ bắt đầu cố gắng khắc phục một số vấn đề lớn hơn của trò chơi. Ngoài ra, công ty cho biết họ có kế hoạch giao tiếp nhiều hơn trong tương lai về những gì nhóm Fallout 76 đang làm việc và khi nào các bản cập nhật mới cho trò chơi sẽ ra mắt.
Bạn có biết rằng một trong sáu bệnh nhân ở bệnh viện ở Hoa Kỳ được điều trị tại một cơ sở Công giáo? Và bạn có biết rằng quyền sở hữu của Công giáo hạn chế sâu sắc việc thiết lập các thủ tục y tế có thể được thực hiện trong các bệnh viện này, rõ ràng nhất là khi nói đến chăm sóc sức khỏe sinh sản? Bây giờ NPR báo cáo rằng sự gia tăng của các bệnh viện thuộc Công giáo đang gây khó khăn hơn cho các bác sĩ — những người bị cấm bởi các quy định do Hoa Kỳ viết.
Đường chân trời San Francisco bị che khuất bởi khói và khói mù do cháy rừng phía sau Đảo Alcatraz, Thứ Tư, ngày 14 tháng 11 năm 2018, ở San Francisco.
Nicky Hilton Rothschild's luggage got lost, but luckily she has an incredible closet to shop: Sister Paris Hilton's!
Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa. Từ Hollywood đến New York và mọi nơi ở giữa, hãy xem các ngôi sao yêu thích của bạn đang làm gì!
Các nhà điều tra đang xem xét liệu nhóm và nghi phạm có biết nhau trước vụ tấn công hay không
Vụ kiện, nêu tên một số học khu, lập luận rằng dự luật "Không nói đồng tính" được ban hành gần đây của Florida "có hiệu quả im lặng và xóa bỏ học sinh và gia đình LGBTQ +"
Cuối hè đầu thu là mùa hoài niệm. Những chiếc đèn đường chiếu ánh sáng của chúng qua những con đường đẫm mưa, và những chiếc lá dưới chân - màu đỏ cam tắt trong bóng chạng vạng - là lời nhắc nhở về những ngày đã qua.
Vào năm 2021, tôi khuyến khích bạn suy nghĩ lại mọi thứ bạn biết về khách hàng mà bạn phục vụ và những câu chuyện bạn kể cho họ. Lùi lại.
Vào ngày sinh nhật thứ 9 của Felix The Cat, tôi nhớ về một trong những mất mát lớn nhất trong cuộc đời trưởng thành của tôi - Sophie của tôi vào năm 2013. Tôi đã viết bài luận này và chia sẻ nó trên nền tảng này một thời gian ngắn vào năm 2013.
Tôi ghét từ "tàu đắm". Mọi người cảm thấy thoải mái trong la bàn đạo đức của riêng mình, và khi làm như vậy, họ thấy mình vượt qua sự phán xét.