파일 및 폴더를 포함하여 커밋되지 않은 변경 사항을 되돌리는 방법은 무엇입니까?
작업 트리와 인덱스에서 커밋되지 않은 모든 변경 사항을 되돌리고 새로 생성된 파일과 폴더도 제거하는 Git 명령이 있습니까?
다음 두 가지 명령을 실행할 수 있습니다.
# Revert changes to modified files.
git reset --hard
# Remove all untracked files and directories.
# '-f' is force, '-d' is remove directories.
git clean -fd
현재 작업 디렉터리의 변경 사항만 되돌리려면 다음을 사용합니다.
git checkout -- .
그 전에 다음과 같은 방법으로 실제로 어떤 작업을 수행하지 않고 되돌릴 파일을 나열할 수 있습니다.
git checkout --
"git checkout --..."을 사용하여 작업 디렉토리의 변경사항을 취소합니다.
git checkout -- app/views/posts/index.html.erb
또는
git checkout -- *
준비되지 않은 파일의 모든 변경 사항을 git 상태 등에서 제거합니다.
modified: app/controllers/posts.rb
modified: app/views/posts/index.html.erb
한 가지 간단한 방법은 다음 두 가지 명령을 실행하는 것입니다.
git stash
변경 내용이 저장소로 이동하여 HEAD 상태로 돌아갑니다.git stash drop
마지막 명령에서 생성된 최신 스택이 삭제됩니다.
Git 2.23은 작업 트리 파일을 복원하는 명령을 도입했습니다.
현재 디렉터리의 모든 파일을 복원하는 방법
git restore .
인덱스의 버전과 일치하도록 모든 C 소스 파일을 복원하려면 다음을 수행합니다.
git restore '*.c'
git clean -fd
도움이 되지 않았고, 새로운 파일들이 남아있었습니다.모든 작업 트리를 완전히 삭제하고 나서,
git reset --hard
추가에 대한 조언은 "https://stackoverflow.com/questions/673407/how-do-i-clear-my-local-working-directory-in-git/673420#673420 "을 참조하십시오.-x
치료 옵션:
git clean -fdx
메모 -x
플래그는 Git에 의해 무시된 모든 파일을 제거할 것이므로 주의하십시오(제가 참조하는 답변의 토론 참조).
다음 명령을 사용할 수 있습니다.git reset --hard
작업 복사본에만 있는 커밋되지 않은 변경사항이 있는 경우 최근 커밋된 복사본으로 되돌리려면 다음을 수행합니다.
git checkout filename
사라지지 않을 것 같은 파일이 여전히 있을 수 있습니다. 편집되지 않았을 수도 있지만 Git가 CRLF/LF 변경으로 인해 편집 중인 것으로 표시했을 수도 있습니다.에서 변경한 내용이 있는지 확인합니다..gitattributes
최근에.
저의 경우, CRLF 설정을.gitattributes
파일 및 모든 파일은 이로 인해 "수정된 파일" 목록에 남아 있습니다..git 특성 설정을 변경하면 특성이 사라집니다.
다음 Git 명령을 사용하면 저장소에서 커밋되지 않은 모든 변경 내용을 되돌릴 수 있습니다.
git checkout .
예:
ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: application/controllers/Drivers.php
modified: application/views/drivers/add.php
modified: application/views/drivers/load_driver_info.php
modified: uploads/drivers/drivers.xlsx
no changes added to commit (use "git add" and/or "git commit -a")
ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git checkout .
ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working tree clean
Git 도움말에서:
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
저는 보통 잘 작동하는 방법을 사용합니다.
mv fold/file /tmp
git checkout fold/file
안전하고 먼 길:
git branch todelete
git checkout todelete
git add .
git commit -m "I did a bad thing, sorry"
git checkout develop
git branch -D todelete
사용:
git reset HEAD filepath
예:
git reset HEAD om211/src/META-INF/persistence.xml
언급URL : https://stackoverflow.com/questions/5807137/how-can-i-revert-uncommitted-changes-including-files-and-folders
'programing' 카테고리의 다른 글
SSL 인증서를 신뢰할 수 없음 - 모바일에서만 (0) | 2023.06.02 |
---|---|
레일:포함 대 :조인트 (0) | 2023.06.02 |
YesNoCancel이 있는 MessageBox - No & Cancel이 동일한 이벤트를 트리거함 (0) | 2023.06.02 |
Response.redirect에서 "스레드가 중단되었습니다."를 발생시킵니다. (0) | 2023.06.02 |
3876877096_Portrait_iPhone-Simple-Pad_Default를 사용하여 키보드 iPhone-Portrait-NumberPad에 대한 유형 4를 지원하는 키 평면을 찾을 수 없습니다. (0) | 2023.06.02 |