지역
BranchA
에있는 동안 나는 계속 따라 갔다
:
- 와이즈 비츠 수정 (실수로)
-
FileA
-
git add FileA
그래,
git commit -m "Modified FileA"
로컬 지점
FileA
에서 로컬 커밋에 있습니다 (원격으로 푸시되지 않음).
(또한 원격으로 밀지 않았습니다).
변경 사항을 FileA로 되돌리려면 어떻게합니까?
업데이트 및 해결 방법
저에게 더 간단하다는 것을 깨달았을 때 git 대신 SourceTree에서 FileA 변경을 취소했습니다.
이렇게하려면, 커밋 된 파일 FileA의 "Source Select"에서 r-c>"Log Select ...">이전 커밋 (이전의 커밋)>r-c를 선택하고 "Remit to this commit"을 선택하십시오. 그 일을했지만 모두 감사합니다
BranchA
- 답변 # 1
- 답변 # 2
먼저 분기를 이전 커밋으로 재설정합니다 :
git reset @^ --mixed
그런 다음
checkout
를 사용할 수 있습니다 특정 파일을 이전 상태로 재설정하는 방법 :git checkout -- files...
변경이 완료되면 다시 커밋 할 수 있습니다 :
git add files... git commit -m "message"
- 답변 # 3
git reset HEAD~1
를 사용하여 현재 분기 색인을 이전 커밋으로 재설정 할 수 있습니다 .--hard
추가 작업 디렉토리를 재설정하거나 변경 사항을 수정하고 다시 커밋하려면 해제하십시오.그 이후로 변경 한 다른 사항이 있으면
git rebase
를 사용하십시오. 문제가 발생한 커밋을 먼저 스택의 맨 위로 이동합니다. - 답변 # 4
다른 방법 : (커밋에 파일 만 변경되었다고 가정하고 버리고 싶습니다) :
지사 A에 있음
git rebase -i HEAD~2
이것은 역사적으로 asc로 정렬 된 두 개의 커밋 목록을 제공합니다. 마지막은 당신이 바꾸고 싶은 것입니다. 따라서 커밋을 삭제하고 싶습니다.
pick
대신 두 번째 커밋으로 커서를 이동하십시오.drop
유형 또는 그냥d
.변경 사항 저장 (편집자에 따라
CTRL
일 수 있음) +X
+ 와이즈 비즈 +SHIFT
Y
를 위해 또는nano
:wq
를 위해 그게 다야.vim
해당 파일에서 변경 사항을 취소하고 커밋은 변경하지 않은 상태로 유지하려면 다음과 같이하십시오.
1) fileA를 이전 상태로 되돌리기
2) 마지막 커밋에서 BranchA에서 수행 한 것을 포함
(그리고 아직 푸시되지 않았으므로 다음에 강제로 푸시 할 필요가 없습니다.)