I가 How to undo 'git add' before commit? 유사하지만 중요한 차이 질문 :이전에 준비된 버전을 유지하는 "git add"를 실행 취소하는 방법은 무엇입니까? (인덱스 역사를 가지고 있습니까?)
배경 :
내가있는 나는거야 파일을 생성하는 것 몇 가지 코드를 실행하는거야 완료되면 내 저장소에 추가하십시오. 파일을 생성하는 코드는 새로운 코드이며 유동적입니다. 그래서 때때로 변경 사항을 두 번 이상 실행합니다.
길에 따라 생성 된 파일을 색인에 추가하므로 끝에 큰 커밋을 준비 할 수 있습니다. 또한 코드의 변경 사항이 출력물에 변경 사항을 작성하는지 확인하고, 변경 사항이 무엇인지 확인합니다. 하지만 ... 실수로 Changes to be committed
섹션 (new file
)과 과Changes not staged for commit
섹션 (모두 modified
)으로 표시된 파일에 다른 git 파일을 추가했습니다. 나는 그것에 힘내 diff를 달릴 것을 의미했다, 그러나 나는 미끄러지고 그것을 다시 추가했다, 그래서 지금 나는 그것을 (그것을 알고있는) 그것을 diff하는 방법이 없다, 그래서 ...
질문 :
을 취소 할 수있는 방법 단지 마지막 준비 작업이, 거기에 이전에 추가 된 버전은 여전히 / 다시 색인에 포함되며, 수정 된 파일을 다시 내 작업 트리에있을 것 같은 그래서 I 그것을 비교할 수 있습니까?
이 작은 개발 과정을 끝내면 모든 것을 함께 커밋하는 것이 목표이므로 아무 것도 커밋되지 않습니다. 나는 그들이 정말로 커밋되기 전에 새 파일에 대한 변경 사항을 정상적으로 보여줄 수 있다는 것을 정말로 좋아한다.하지만 ... 나는 그 기회를 놓쳤다. 그리고 그것을 되 찾을 수있는 방법이 있는지 궁금하다. ?
내가 지금까지 쳐다 보았던 것들은 마지막 커밋 (파일 없음) 또는 파일의 현재 상태 (나는 어쨌든 갖고 있음)로 되돌릴 수있는 것 같지만 인덱스에서 이전 버전으로 이동하면 커밋의 일부가 아닙니다. 이것이 가능한지 여부에 대한 힌트 (심지어 이것이 확실하지 않은 견고한 해답이라 할지라도, 이것이 왜 그런지에 대한 설명이있는 것이 바람직 함)에 감사드립니다.
repo 오브젝트 파일의 타임 스탬프는 추가 시간 창을 식별 할 수있는 경우 도움을 줄 수 있습니다.이 내용은 나중에 추가하는 내용을 구별 할 수 있다면 쉽게 확인할 수 있습니다. – jthill
yea, 나는 항상 git을 실행하면 항상 당신을 해칠 수 없다는 데 동의합니다. 그것이 자식의 의도입니다. –
감사합니다. 빈번한 커밋에 관해서는, 이것은 단지 몇 초 만에 일어났습니다. 정말로 ... 나는 더 자주 *하고, --amend를 사용하는 것이 타당한 것으로 보였을지라도, 공정하게 * 자주 커밋을하고있었습니다. --lost-found 옵션은 잠재적으로 도움이되기 때문에 그 점에 대해 감사드립니다! 나는 계속 전진했으나, 그 당시에 내가 원하는 것을 나에게 주었을 것 같다. 감사. – lindes