작업 트리 및 색인에서 커밋되지 않은 모든 변경 사항을 되돌리고 새로 만든 파일과 폴더를 제거하는 git 명령이 있습니까?
작업 트리 및 색인에서 커밋되지 않은 모든 변경 사항을 되돌리고 새로 만든 파일과 폴더를 제거하는 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 clean -i
대화식 모드.
git merge --abort
.
현재 작업 디렉토리에서만 변경 사항을 되돌리려면 다음을 사용하십시오.
git checkout -- .
그리고 그 전에 실제로 어떤 작업을 수행하지 않고 되돌릴 파일을 나열하여 다음 작업을 수행 할 수 있습니다.
git checkout --
git reset --hard
입니까?
"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 checkout -- *
변경된 파일이있는 디렉토리에 있지 않으면 나를 위해 작동하지 않습니다. 전체 저장소에서 모든 파일을 체크 아웃을 수행해야합니다git checkout -- :/
git checkout -- *
, 별은 현재 디렉토리에있는 모든 파일과 디렉토리, 쉘에 의해 대체된다. 따라서 하위 디렉토리로 이동해야합니다. 그것은 나를 위해 작동합니다. 그러나 제 의견으로는 더 깔끔한 ": /"구문을 강조해 주셔서 감사합니다.
사소한 방법 중 하나는 다음 두 명령을 실행하는 것입니다.
git stash
그러면 변경 사항이 숨김으로 이동하여 HEAD 상태로 돌아갑니다.git stash drop
마지막 명령에서 생성 된 최신 숨김이 삭제됩니다.fatal: git-write-tree: error building trees Cannot save the current index state
git clean -fd
도움이되지 않았지만 새로운 파일이 남아있었습니다. 내가 한 일은 모든 작업 트리를 완전히 삭제 한 다음
git reset --hard
정리 옵션을 추가하는 데 대한 조언은 " git에서 로컬 작업 디렉토리를 지우려면 어떻게합니까? "를 참조하십시오 -x
.
git clean -fdx
참고 -x
플래그는 Git에서 무시되는 모든 파일을 제거하므로 조심하십시오 (내가 대답하는 답변의 토론 참조).
다음 명령을 사용할 수 있다고 생각합니다. git reset --hard
커밋되지 않은 변경 사항 (작업 복사본에만 해당)이 최신 커밋에서 복사본으로 되돌리려면 다음을 수행하십시오.
git checkout filename
git rm filename
작동하지 않습니다. error: pathspec 'filename' did not match any file(s) known to git.
git rm
입니다git checkout master -- filename
Git 2.23은 git restore
작업 트리 파일을 복원하는 명령을 도입했습니다 .
https://git-scm.com/docs/git-restore
현재 디렉토리의 모든 파일을 복원하려면
자식 복원.
인덱스의 버전과 일치하도록 모든 C 소스 파일을 복원하려는 경우 수행 할 수 있습니다.
자식 복원 '* .c'
다음 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