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.