2013-08-29 5 views
0

git add --patch의 별칭으로 ap을 많이 사용하고 있기 때문에 실수로 git am을 입력했습니다. 좋습니다, 제 생각에는 단지 git am --abort 일 수 있기를 바랍니다. 우발적 인`git am`과`git am --abort` 후 복구

하지만 내 공포에

, 그것은 경고없이 어느 시점, git am에서, 당신의 미트되지 않은 및 unstaged 작업에 하드 리셋을한다는 것을 밝혀졌습니다. 내 ap 이전에 내가 unstaged 변경을 할 가능성이 높다면,이 오타는 항상 데이터 손실을 의미합니다.

실제로 그것은 나에게 몇 번이나 일어 났지만, 이제는 많은 일이 있었기 때문에 정말로 상처를 받았습니다.

비교를 위해 일반적으로 예를 들어. rebase 또는 checkout은 내가 unstaged 변경 사항을 가지고 때 bails. am이 다른 이유는 무엇입니까 (무식하거나 파괴적입니까?)?

무단 변경 후을 복구 할 수 있습니까?

+0

작업이 준비 될 때까지 git이 그 작업을 알고 있습니다. 무단 파일 작업을 할 때 실제로 인터넷없이 작업하고 있습니다. – vgoff

+0

@vgoff 나는 당신이 무대 뒤에서 헷갈 렸을 것으로 생각한다. 내가하는 일은 꽤 일반적인 작업 흐름입니다. 파일을 편집하고 변경 사항을 준비하며 단계적 변경을 커밋합니다. –

+0

@vgoff 질문에 "그물"에 메모를 추가했습니다. 그러나, 나는 불안정한 자식 (1.8.3.1)을 사용하고 있다는 것을 깨달았습니다. 그래서 어떤 의미에서는 그물없이 일하고 있습니다. –

답변

1

미안하지만, 만약 그들이 unstaged했다면 그 내용은 git 's view 밖에있는 평범한 파일 일뿐입니다. 파일 시스템에 지속적인 데이터 보호 설정 (git annex?)을 설정하지 않으면, 운이 좋지 않을 것입니다. 아마도 am의 별칭을 다른 것으로 지정해야 할 때입니다.

+0

그들이 git의 견해 밖에 있었다면, 그는 어떻게 * 되돌아 갔습니까? –

+0

이전 버전이 아니기 때문에. 되돌리기는 '파일 시스템의 사본을 현재 저장된 버전으로 바꾸는 것입니다.' 그래도 명확하게하기 위해 문언을 수정합니다. –