git : 새 파일을 포함하여 모든 작업 디렉토리 변경을 취소합니다.
추적되지 않은 새 파일을 포함하여 작업 디렉토리에서 모든 변경 사항을 삭제하는 방법. 그렇게하는 것을 알고 git checkout -f
있지만 마지막 커밋 이후 생성 된 새로운 추적되지 않은 파일을 삭제하지는 않습니다.
누구든지 그 방법을 알고 있습니까?
git reset --hard # removes staged and working directory changes
## !! be very careful with these !!
## you may end up deleting what you don't want to
## read comments and manual.
git clean -f -d # remove untracked
git clean -f -x -d # CAUTION: as above but removes ignored files like config.
git clean -fxd :/ # CAUTION: as above, but cleans untracked and ignored files through the entire repo (without :/, the operation affects only the current directory)
실제로 삭제하지 않고 미리 삭제할 내용을 보려면 -n
플래그를 사용하십시오 (기본적으로 테스트 실행입니다). 실제로 삭제할 준비가되면 -n
플래그 를 제거하십시오 .
git clean -nfd
자주 사용하는 가장 안전한 방법 :
git clean -fd
/docs/git-clean
페이지 별 구문 설명 :
-f
(별칭 :)--force
. Git 구성 변수 clean.requireForce가 false로 설정되지 않은 경우 git clean은 -f, -n 또는 -i를 지정하지 않는 한 파일 또는 디렉토리 삭제를 거부합니다. Git은 두 번째 -f가 주어지지 않는 한 .git 하위 디렉토리 또는 파일이있는 디렉토리 삭제를 거부합니다.-d
. 추적되지 않은 파일과 함께 추적되지 않은 디렉토리를 제거하십시오. 추적되지 않은 디렉터리가 다른 Git 리포지토리에서 관리되는 경우 기본적으로 제거되지 않습니다. 정말로 그러한 디렉토리를 제거하려면 -f 옵션을 두 번 사용하십시오.
주석에서 언급했듯이 git clean -nd
테스트 실행을 수행하고 실제로 삭제하기 전에 삭제 될 내용을 알려주는 a 를 수행하는 것이 좋습니다.
git clean
문서 페이지 링크 : https://git-scm.com/docs/git-clean
모든 내용은 unstaged 파일을 사용합니다 :
git checkout -- .
.
끝에 중요하다.
.
프로젝트의 특정 하위 디렉토리 만 지우려면 하위 디렉토리 이름으로 바꿀 수 있습니다 . 문제는 여기에서 구체적으로 다루어 집니다 .
git clean
명령을 살펴보십시오 .
git-clean-작업 트리에서 추적되지 않은 파일 제거
현재 디렉토리에서 시작하여 버전 제어를받지 않는 파일을 재귀 적으로 제거하여 작업 트리를 정리합니다.
일반적으로 git에 알려지지 않은 파일 만 제거되지만 -x 옵션이 지정되면 무시 된 파일도 제거됩니다. 예를 들어 모든 빌드 제품을 제거하는 데 유용 할 수 있습니다.
다음 작업 :
git add -A .
git stash
git stash drop stash@{0}
이렇게하면 스테이지되지 않은 로컬 변경 사항과 스테이지 된 로컬 변경 사항이 모두 삭제됩니다. 따라서 이러한 명령을 실행하기 전에 유지하려는 모든 것을 커밋해야합니다.
일반적인 사용 사례 : 많은 파일이나 디렉토리를 이동 한 다음 원래 상태로 되돌리려 고합니다.
크레딧 : https://stackoverflow.com/a/52719/246724
이 작업은 두 단계로 수행 할 수 있습니다.
- 수정 된 파일 되돌리기 :
git checkout -f
- 추적되지 않는 파일 제거 :
git clean -fd
나는 그것이 ( 경고 : 다음 은 모든 것을 지울 것입니다 ) 이라고 생각했습니다 .
$ git reset --hard HEAD
$ git clean -fd
는 reset
변경 사항을 취소합니다. 은 clean
어떤 비 추적 제거하는 F의 세틸 및 개발 irectories한다.
git reset --hard origin/{branchName}
추적되지 않은 모든 파일을 삭제합니다.
git clean -i
먼저 삭제할 항목을 표시하고 확인 후 진행합니다. 실수로 삭제해서는 안되는 중요한 파일을 다룰 때 유용합니다.
git help clean
기타 유용한 옵션을 포함한 자세한 내용 은 을 참조하십시오 .
An alternative solution is to commit the changes, and then get rid of those commits. This does not have an immediate benefit at first, but it opens up the possibility to commit in chunks, and to create a git tag for backup.
You can do it on the current branch, like this:
git add (-A) .
git commit -m"DISCARD: Temporary local changes"
git tag archive/local-changes-2015-08-01 # optional
git revert HEAD
git reset HEAD^^
Or you can do it on detached HEAD. (assuming you start on BRANCHNAME branch):
git checkout --detach HEAD
git add (-A) .
git commit -m"DISCARD: Temporary local changes"
git tag archive/local-changes-2015-08-01 # optional
git checkout BRANCHNAME
However, what I usually do is to commit in chunks, then name some or all commits as "DISCARD: ...". Then use interactive rebase to remove the bad commits and keep the good ones.
git add -p # Add changes in chunks.
git commit -m"DISCARD: Some temporary changes for debugging"
git add -p # Add more stuff.
git commit -m"Docblock improvements"
git tag archive/local-changes-2015-08-01
git rebase -i (commit id) # rebase on the commit id before the changes.
# Remove the commits that say "DISCARD".
This is more verbose, but it allows to review exactly which changes you want to discard.
The git lol
and git lola
shortcuts have been very helpful with this workflow.
For a specific folder I used:
git checkout -- FolderToClean/*
If you want to discard all changes, you can use any of the valid options in an alias in .gitconfig
. For instance:
[alias]
discard = "!f() { git add . && git stash && git stash drop stash@{0}; }; f"
Usage: git discard
This is probably a noob answer, but: I use TortoiseGit for windows and it has a nice feature called REVERT. So what you do to revert your local nonstaged nonpushed changes is:
- bring up a context menu for the needed folder and select revert, it shows a revert popup where you can select changed files to revert/recover.
- If you also want to delete added files(that are not in git yet) click commit (from same context menu) it brings up the Commit popup and shows you the added files, then right click each of them and choose delete. But dont press Commit btn in this popup, as you dont wanna commit, but only see added files and delete them from here.
참고URL : https://stackoverflow.com/questions/1090309/git-undo-all-working-dir-changes-including-new-files
'development' 카테고리의 다른 글
주어진 요소에 클래스를 어떻게 추가합니까? (0) | 2020.09.27 |
---|---|
Node.js의 Express.js에서 GET (쿼리 문자열) 변수를 얻는 방법은 무엇입니까? (0) | 2020.09.27 |
서블릿은 어떻게 작동합니까? (0) | 2020.09.27 |
문자열에서 공백을 어떻게 제거합니까? (0) | 2020.09.27 |
스크롤 후 요소가 보이는지 확인하는 방법은 무엇입니까? (0) | 2020.09.27 |