git: 새 파일을 포함한 모든 작업 dir 변경 실행 취소
추적되지 않은 새 파일을 포함하여 작업 디렉터리에서 모든 변경 사항을 삭제하는 방법.나는 그것을 알고 있습니다.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
) clean.false로 또는가 지정되지 경우 또는 Git 구성 변수 clean.requireForce가 false로 설정되지 않은 경우 gitclean은 -f, -n 또는 -i가 지정되지 않은 경우 파일 또는 디렉터리 삭제를 거부합니다.두 번째 -f가 제공되지 않는 한 Git는 .git 하위 디렉터리 또는 파일이 있는 디렉터리 삭제를 거부합니다.-d
추적되지 않은 파일 외에 추적되지 않은 디렉토리도 제거합니다.추적되지 않은 디렉터리가 다른 Git 리포지토리에서 관리되는 경우 기본적으로 제거되지 않습니다.이러한 디렉터리를 제거하려면 -f 옵션을 두 번 사용합니다.
댓글에 언급된 것처럼, 하는 것이 더 나을 수 있습니다.git clean -nd
임시 실행을 수행하고 실제로 삭제하기 전에 삭제할 내용을 알려줍니다.
링크:git clean
문서 페이지: https://git-scm.com/docs/git-clean
추적된 모든 단계별 파일에 대해 다음을 사용합니다.
git checkout -- .
그.
마지막에 중요합니다.
▁you▁can있습수를 대체할 수 있습니다..
하위 디렉터리 이름을 사용하여 프로젝트의 특정 하위 디렉터리만 지웁니다.이 문제는 여기서 구체적으로 해결됩니다.
이 작업은 두 단계로 수행할 수 있습니다.
- 파일 : 수된파되돌기리:
git checkout -f
- 되지 않은 파일 제거: 추되지파일제거:
git clean -fd
명령어를 확인합니다.
git-clean - 작업 트리에서 추적되지 않은 파일 제거
현재 디렉터리에서 시작하여 버전 제어 하에 있지 않은 파일을 재귀적으로 제거하여 작업 트리를 치료합니다.
일반적으로 git을 알 수 없는 파일만 제거되지만 -x 옵션을 지정하면 무시된 파일도 제거됩니다.예를 들어 모든 빌드 제품을 제거하는 데 유용할 수 있습니다.
다음 작업이 가능성:
git add -A .
git stash
git stash drop stash@{0}
이렇게 하면 준비되지 않은 로컬 변경사항과 준비된 로컬 변경사항이 모두 삭제됩니다.따라서 이러한 명령을 실행하기 전에 보관할 모든 항목을 커밋해야 합니다.
일반적인 사용 사례:많은 파일 또는 디렉터리를 이동한 다음 원래 상태로 되돌리려고 합니다.
학점: https://stackoverflow.com/a/52719/246724
(경고: 다음을 수행하면 모든 것이 지워집니다)라고 생각했습니다.
$ git reset --hard HEAD
$ git clean -fd
그reset
변경 내용을 취소합니다. 그clean
추적되지 않은 파일 및 디렉터리를 제거합니다.
git reset --hard origin/{branchName}
추적되지 않은 모든 파일이 삭제됩니다.
git clean -i
먼저 삭제할 항목을 표시하고 확인 후 진행합니다.실수로 삭제해서는 안 되는 중요한 파일을 처리할 때 유용합니다.
» git help clean
기타 유용한 옵션을 포함하여 자세한 내용을 확인할 수 있습니다.
모든 사항을 하려면 모든변 사경취면의유옵별효중다있수사니습하용할나를션칭한서에에 있는 중 ..gitconfig
예를 들어:
[alias]
discard = "!f() { git add . && git stash && git stash drop stash@{0}; }; f"
용도:git discard
다른 해결책은 변경사항을 커밋한 다음 커밋을 제거하는 것입니다.이를 통해 즉시 이점을 얻을 수는 없지만 청크를 커밋하고 백업용 Git 태그를 생성할 수 있습니다.
다음과 같이 현재 분기에서 이 작업을 수행할 수 있습니다.
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^^
또는 분리된 HEAD에서 수행할 수 있습니다.(BranchNAME 분기에서 시작한다고 가정):
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
그러나 보통 제가 하는 일은 청크로 커밋한 다음 일부 또는 모든 커밋의 이름을 "DISCARD: ..."로 지정하는 것입니다.그런 다음 대화형 기본 재배치를 사용하여 잘못된 커밋을 제거하고 올바른 커밋을 유지합니다.
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".
이것은 더 자세한 내용이지만 삭제할 변경사항을 정확하게 검토할 수 있습니다.
및 바로 가기는 이 워크플로우에 매우 유용합니다.
사용한 특정 폴더의 경우:
git checkout -- FolderToClean/*
이것은 아마도 무모한 대답일 것입니다. 하지만: 저는 TorothyGit을 창에 사용하고 RETVERT라는 멋진 기능을 가지고 있습니다.따라서 푸시되지 않은 로컬 변경 사항을 되돌리기 위해 수행하는 작업은 다음과 같습니다.
- 필요한 폴더의 상황에 맞는 메뉴를 열고 revert를 선택하면 변경된 파일을 revert/revert로 선택할 수 있는 revert 팝업이 표시됩니다.
- 추가된 파일(아직 포함되지 않음)도 삭제하려면 커밋(같은 컨텍스트 메뉴에서)을 클릭하면 커밋 팝업이 나타나고 추가된 파일이 표시된 다음 각 파일을 마우스 오른쪽 단추로 클릭하고 삭제를 선택합니다.그러나 커밋하지 않으려면 이 팝업에서 커밋 btn을 누르지 말고 추가된 파일만 보고 여기서 삭제하십시오.
언급URL : https://stackoverflow.com/questions/1090309/git-undo-all-working-dir-changes-including-new-files
'programing' 카테고리의 다른 글
Xcode 빌드 설정에서 "아키텍처"와 "유효한 아키텍처"의 차이점은 무엇입니까? (0) | 2023.05.06 |
---|---|
C++ std:: 문자열이 특정 문자열로 시작하는지 확인하고 하위 문자열을 int로 변환하려면 어떻게 해야 합니까? (0) | 2023.05.06 |
컬렉션이 있을 때 VBA에서 어레이를 사용하는 이유는 무엇입니까? (0) | 2023.05.06 |
SQLAlchemy create_all()이 테이블을 생성하지 않습니다. (0) | 2023.05.06 |
치명적: 사용자 "postgres"에 대한 암호 인증 실패(pgAdmin 4에서 postgresql 11 이후) (0) | 2023.05.06 |