git mv 실행 취소 (이름 바꾸기)


139

git에서 이름 바꾸기를 취소하는 올바른 방법은 다음과 같습니다.

git mv file1 file2

21
건방진 답변 :git mv file2 file1
— CanSpice

@CanSpice : 정답입니다. 건방진 아무것도 없습니다.
— CB Bailey

1
@Charles : 글쎄, 나는 그것을 적절한 건방진 답변으로 제공했습니다. :-)
— CanSpice

git mv file2 file1 다른 것을 기대 했습니까?
— Lakshman Prasad

답변:


230

건방진 대답 :

git mv file2 file1

이전 경로와 새 경로 모두에 대한 색인을 자동으로 업데이트합니다.

git mv 문서를 확인하십시오


4
file1과 file2가 모두 현재 디렉토리 (.)에 있다고 가정 git checkout .하면 -f옵션을 사용해도 왜 작동하지 않습니까?
— ryenus

9
다음과 같이 직관적 인 것은 드문 것 같습니다 :)
— ragerdl

@ryenus을 사용해야 git checkout -- .합니다.
— Joseph238

롤 재밌네.
— Dmitriy 독신

나에게 오류를 제공을 위해 작동하지 않았다 fatal: source directory is empty,, 단지 git reset --hard작업을했다.
— mac13k

43

마지막 커밋 이후에 다른 변경 사항 (보존하려는 내용)을 수행하지 않은 경우

git reset --hard

6
을 사용하는 습관을 들이고 싶지 않습니다 git reset --hard. 그냥 뒤로 이동하면 더 안전한 옵션 인 것 같습니다.
— osa

4
나를 위해 일했다. 나는 "자식 MV"1) 아직 커밋되지 않은 것을 취소하고 싶어하고, 2) 나는 다른 chages 없었다
— 산의 에드

다른 변경 사항을 유지하려는 경우 모든 변경 사항이 삭제됩니다.
— user151841

13
git reset HEAD file2

나를 위해 트릭을 했어


1
이 답변에 대한 유일한 문제는 디스크에 file2의 사본이 남아 있다는 것입니다.
— user52472

9

필자의 경우 전체 폴더를 옮긴 다음 없어야한다는 것을 깨달았습니다.

@Dave Konopka의 답변을 정말로 좋아했지만 그 접근법으로 많은 성공을 거두지 못했습니다 (내 버전의 GIT (1.8.4)? 파일이 여전히 삭제 된 것으로 표시되었습니다. 스택에 원하지 않는 다른 변경 사항이 있습니다. (안타깝게도) 잃는다.

나는 이것을 성공했다 :

git reset moved_folder
git checkout original_folder

8

그것은 당신이 달성하고자하는 것에 달려 있습니다. 파일이 이동 한 적이없는 것처럼 보이게하려면 이동하기 전에 다시 재설정하거나 다시 조정할 수 있습니다. 역사에 신경 쓰지 않는다면 그냥 옮기십시오.


4
첫 번째는 커밋을 푸시하지 않았거나 누군가가 당신을 끌어 내지 않은 한 잘 작동합니다.
— CanSpice

7

실수로 많은 수의 파일을 이름을 변경하고 시작 위치로 돌아 가야 할 경우에,로 표시 모든 이름을 바꾼 파일을 삭제 adds아래에있는 A git status전화를.

변경된 파일을 모두 삭제 git checkout -- *하면 원래 파일 이름을 로컬로 가져 오기 위해 실행할 수 있습니다.


4
git reset HEAD file2
git checkout -- file1
rm file2

첫 번째 명령은 file2를 스테이지 해제하지만 사본을 남겨 둡니다. 두 번째 명령은 원본 파일을 복원하고 세 번째 명령은 새 파일을 삭제합니다.


1

내가 사용한 트릭은 git stash를 수행하여 모든 변경 사항을 취소하고 (mv'd 파일 복원 포함) git stash drop으로 숨김을 삭제했습니다.


0

덜 무서운 것은 repo의 최상위 레벨로 이동하여 수행하는 것입니다.

git reset
git checkout입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.