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 |