마지막 커밋 이후 모든 변경 사항을 취소하려고합니다. 나는 시도 git reset --hard
하고 git reset --hard HEAD
본 후 이 게시물을 . 나는 head가 18c3773에 있다고 응답하지만 … 내 로컬 소스를 볼 때 모든 파일이 여전히 있습니다. 내가 무엇을 놓치고 있습니까?
답변
-
이렇게하면 준비한 모든 파일의 준비가 해제됩니다
git add
.git reset
-
커밋되지 않은 모든 로컬 변경 사항을 되돌립니다 (리포지토리에서 실행해야 함).
git checkout .
커밋되지 않은 변경 사항을 특정 파일이나 디렉토리로 되돌릴 수도 있습니다.
git checkout [some_dir|file.txt]
커밋되지 않은 모든 변경 사항을 되 돌리는 또 다른 방법은 유형이 길지만 하위 디렉토리에서 작동합니다.
git reset --hard HEAD
-
이렇게하면 추적되지 않은 모든 로컬 파일이 제거되므로 git 추적 파일 만 남습니다.
git clean -fdx
경고 : !로
-x
지정된 파일을 포함하여 무시 된 모든 파일도 제거합니다.gitignore
.-n
삭제할 파일의 미리보기에 사용할 수 있습니다 .
요약하자면, 아래 명령을 실행하는 것은 기본적으로 git clone
원래 소스에서 새로 나온 것과 동일 하지만 아무것도 다시 다운로드하지 않으므로 훨씬 빠릅니다.
git reset
git checkout .
git clean -fdx
이를위한 일반적인 사용법은 빌드 스크립트에서, 트리가 완전히 깨끗한 지 확인해야합니다. 수정 또는 로컬로 생성 된 오브젝트 파일 또는 빌드 아티팩트가없고 매우 빠르게 작동하고 재 작업하지 않도록하려는 경우 매번 전체 저장소를 복제하십시오.
답변
커밋되지 않은 모든 변경 사항 을 ” 실행 취소 “하려면 다음을 실행하십시오.
git stash
git stash drop
추적되지 않은 파일이있는 경우 (를 실행하여 확인 git status
) 다음 을 실행하여 파일을 제거 할 수 있습니다.
git clean -fdx
git stash
stash @ {0} 이 될 새로운 숨김을 작성합니다 . 먼저 확인하려면 git stash list
보관함 목록을 확인하기 위해 실행할 수 있습니다 . 다음과 같이 보일 것입니다 :
stash@{0}: WIP on rails-4: 66c8407 remove forem residuals
stash@{1}: WIP on master: 2b8f269 Map qualifications
stash@{2}: WIP on master: 27a7e54 Use non-dynamic finders
stash@{3}: WIP on blogit: c9bd270 some changes
각 숨김은 이전 커밋 메시지의 이름을 따서 명명됩니다.
답변
답변
소스 트리를 사용하고 있습니다 …. 두 가지 간단한 단계를 통해 커밋되지 않은 모든 변경 사항을 되돌릴 수 있습니다.
1) 작업 공간 파일 상태를 재설정해야합니다.
2) 모든 unstage 파일 (명령 + a)을 선택하고 마우스 오른쪽 버튼을 클릭 한 다음 제거를 선택하십시오.
그것은 간단합니다 : D
답변
내가하는 일은
git add . (adding everything)
git stash
git stash drop
짧막 한 농담: git add . && git stash && git stash drop
답변
여기에 도달 git clean -f -d
하여 취소 할 수 있는지 검색하는 사람들에게 이클립스 에서 생성 된 파일 에서 이 삭제
“로컬 히스토리에서 복원”을 사용하여 UI에서 동일한 작업을 수행 할 수 있습니다. 로컬 히스토리에서 복원
답변
한 커밋에서 새로운 커밋으로 전환하는 상태
0. last commit,i.e. HEAD commit
1. Working tree changes, file/directory deletion,adding,modification.
2. The changes are staged in index
3. Staged changes are committed
상태 전이를위한 조치
0->1: manual file/directory operation
1->2: git add .
2->3: git commit -m "xxx"
차이점 확인
0->1: git diff
0->2: git diff --cached
0->1, and 0->2: git diff HEAD
last last commit->last commit: git diff HEAD^ HEAD
마지막 커밋으로 되돌리기
2->1: git reset
1->0: git checkout . #only for tracked files/directories(actions include modifying/deleting tracked files/directories)
1->0: git clean -fdx #only for untracked files/directories(action includes adding new files/directories)
2->1, and 1->0: git reset --hard HEAD
아무것도 다시 다운로드하지 않고 git clone과 동일
git reset && git checkout . && git clean -fdx