Development Tip

Git에서 로컬 작업 디렉토리를 지우려면 어떻게해야합니까?

yourdevel 2020. 9. 30. 11:32
반응형

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 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

반응형