Git에서 로컬 작업 디렉토리를 지우려면 어떻게해야합니까? [복제]
이 질문에 이미 답변이 있습니다.
Git에서 내 작업 디렉토리를 어떻게 지울 수 있습니까?
특정 파일을 마지막으로 커밋 된 상태로 재설정하려면 (특정 파일에서 커밋되지 않은 변경 사항을 버리기 위해) :
git checkout thefiletoreset.txt
이것은 git status
출력 에서 언급됩니다 .
(use "git checkout -- <file>..." to discard changes in working directory)
전체 저장소를 마지막 커밋 된 상태로 재설정하려면 :
git reset --hard
비 추적 파일을 제거하기 위해, 나는 대개 모든 작업 복사본의 파일 (그러나 삭제 하지.git/
다음, 폴더를!) 할 git reset --hard
커밋 된 파일있는 잎에게 그것을.
더 좋은 방법은 다음을 사용하는 것입니다 git clean
( 경고 : -x
아래 플래그를 사용 하면 Git에서 무시 된 파일을 삭제합니다).
git clean -d -x -f
디렉토리 ( -d
) 및 git ( -x
)에서 무시되는 파일을 포함하여 추적되지 않은 파일을 제거합니다 . 드라 이런 또는 대화 형 모드 를 수행 하려면 -f
인수를 -n
로 바꾸면 -i
제거 할 항목을 알려줍니다.
관련 링크 :
- git-reset 매뉴얼 페이지
- git-clean man 페이지
- git ready "추적되지 않은 파일 정리" (Marko가 게시 한대로)
- 스택 오버플로 질문 "현재 Git 작업 트리에서 로컬 (추적되지 않은) 파일을 제거하는 방법" )
사용하다:
git clean -df
잘 광고되지 git clean
는 않았지만 정말 편리합니다. 힘내 준비 가지고 에 좋은 소개git clean
.
지금까지의 모든 답변은 로컬 커밋을 유지합니다. 정말로 진지 하다면 다음 을 수행하여 모든 로컬 커밋과 모든 로컬 편집을 삭제할 수 있습니다.
git reset --hard origin/branchname
예를 들면 :
git reset --hard origin/master
이렇게하면 로컬 저장소 가 원본 상태 (추적되지 않은 파일 제외) 와 정확히 일치 합니다.
명령을 읽은 후 실수로이 작업을 수행 한 경우 수행하는 작업이 아니라 :) git reflog를 사용하여 이전 커밋을 찾습니다.
빈 작업 복사본을 포함하는 커밋을 만들 수 있습니다.
이것은 무차별 대입 재설정 메커니즘을 사용하지 않기 때문에 일반적으로 안전하고 비파괴적인 접근 방식입니다. 먼저를 사용하여 모든 관리되는 콘텐츠를 숨긴 git checkout empty
다음 관리되지 않는 콘텐츠가 남아있는 것을 수동으로 검토하고 제거 할 수 있습니다.
## create a stand-alone, tagged, empty commit
true | git mktree | xargs git commit-tree | xargs git tag empty
## clear the working copy
git checkout empty
이제 작업 복사본에 관리되는 콘텐츠가 없어야합니다. 나머지는 관리되지 않는 파일과 .git
폴더 자체입니다.
작업 복사본을 다시 채우려면 ...
git checkout master ## or whatever branch you will be using
미래를 생각하는 개인이라면 모든 것을 초기 빈 커밋을 기반으로하여 저장소를 올바르게 시작할 수 있습니다.
git init
git commit --allow-empty --allow-empty-message -m ""
git tag empty
...
태그가 지정된 빈 작업 트리에는 다양한 용도가 있습니다. 현재 내가 가장 좋아하는 것은 git worktree
하위 폴더 집합 아래에서 루트를 제거하는 것입니다 .
다른 브랜치로 전환하려면 커밋되지 않은 모든 변경 사항을 버립니다 (예 : Git의 이상한 라인 엔딩 처리로 인한 결과) :
git checkout -f <branchname>
I had a working copy with hundreds of changed files (but empty git diff --ignore-space-at-eol
) which I couldn't get rid off with any of the commands I read here, and git checkout <branchname>
won't work, either - unless given the -f
(or --force
) option.
To reset a specific file as git status suggests:
git checkout <filename>
To reset a folder
git checkout <foldername>/*
참고URL : https://stackoverflow.com/questions/673407/how-do-i-clear-my-local-working-directory-in-git
'Development Tip' 카테고리의 다른 글
JavaScript에서 Switch 문 여러 사례 (0) | 2020.09.30 |
---|---|
강제 메이븐 업데이트 (0) | 2020.09.30 |
쿼리 문자열 매개 변수의 Java URL 인코딩 (0) | 2020.09.30 |
연속 스트림을 'grep'하는 방법은 무엇입니까? (0) | 2020.09.30 |
Git에서 HEAD ^와 HEAD ~의 차이점은 무엇입니까? (0) | 2020.09.30 |