2014-05-14 7 views
0

좋아요, 저는이 문제를 완전히 해결했다고 확신합니다.하지만 누군가 내가 잘못했거나 앞으로 나아갈 수있는 올바른 방법을 알려주기를 바랍니다.복사 된 파일에 변경 내용이 포함되어 있지 않습니다.

기본적으로 나는 약간의 변경을 가한 다음 잘못된 "지점"에 있다는 것을 깨달았습니다. 따라서 변경된 폴더를 다른 위치로 복사 한 다음, 편집되지 않은 변경 사항을 삭제하고 올바른 분기로 전환 한 다음 복사 한 폴더를 "새"디렉토리로 옮길 수 있다고 생각했습니다. 그러나 보류중인 변경 사항 중 아무 것도 폴더와 함께 복사되지 않은 것으로 보입니다. 대신 파일이 모두 원래 상태와 일치합니다. 즉 "올바른"브랜치에 복사 된 폴더를 지나쳤을 때 아무 것도 바뀌지 않습니다 ...

나는 한 시간 정도의 작업 시간을 잃었습니다. 누군가 일어난 일을 설명해 주시겠습니까?

답변

0

걱정할 필요가 없습니다. git 저장소 (비밀번호 .git-folder) 자체를 건드리지 않고 작업 중에 커밋을했기 때문에 모든 것이 잘되어 모든 것을 되돌릴 수 있습니다.

처음에는 git-repository가 항상 작업 공간과 git-database의 두 가지로 구성된다는 것을 분명히 밝힙니다.

git-database는 (잘하면 비밀) .git -folder이며 git-commands 만 액세스해야합니다. 여기에는 인덱스, 커밋, 태그, 분기 등의 상태를 설명하는 데이터 객체 인 "베어"저장소가 포함되어 있습니다.

이제이 데이터베이스에 직접 액세스 할 필요가 없으므로 파일을 조작하기위한 인터페이스가 필요합니다. 이것은 작업 공간이 언급 된 것입니다. 작업 공간에는 작업의 현재 상태가 포함됩니다.

작업에서 스냅 샷을 만들어 해당 데이터베이스로 전달하거나 해당 데이터베이스의 변경 사항을 현재 작업 디렉토리로 가져 오는 것이 있습니다.

자, 이제 어떻게 된 일인지 설명해 보겠습니다.

작업 디렉토리에서 다른 디렉토리로 모든 파일을 복사 한 다음 분기를 전환하고 사본을 삽입하려고했습니다. 이전 분기로 다시 전환하면 모든 것이 이전과 같습니다. 왜 그거야?

글쎄 git checkout "[u]는 작업 트리의 파일을 색인 또는 지정된 트리의 버전과 일치하도록 pdates합니다." 다시 말해 데이터베이스 (저장소)는 해당 분기의 현재 "저장된"상태가 무엇인지 물어 본 다음 해당 분기의 포함 된 스냅 샷을 제공합니다.

그게 네가 알아 낸거야. 너의 작업 공간이 체크 아웃과 함께 지사의 마지막 "저장"지점으로 되돌아 갔다.

그 외에도 "부정한"작업 디렉토리로 "파괴적인"작업을 수행하는 경우 git 관점에서 작업을 수행하고 있으므로 커밋되지 않은 변경 사항에 대한 경고가 표시됩니다.

나는 이보다 훨씬 나은 행동을 설명하는 pro git을 읽는 것이 좋습니다. :)

아 - 그리고 command line interface 시도 - 그것은 매력처럼 작동합니다!

+0

죄송합니다, 저를 바꿔 보자 ... 적절한 방법은 무엇에 ** MOVE ** 다른 지점에 잘못된 작업 복사본에서 변경? 변경 사항이 커밋되지 않았을 때 어떻게해야하며, 변경 사항이있을 때 잘못된 지점에서 제거해야하는 경우 어떻게해야합니까? –

0

좋아 ... 알아 냈어. 내 uncomitted 변경 내용을 "숨김"다음 올바른 지점으로 전환하고 "숨긴"변경 내용을 적용했습니다.

https://answers.atlassian.com/questions/181773/change-commit-code-to-other-branch-sourcetree-for-windows

+0

축하합니다 - stash 명령을 사용하면 작업 디렉토리에서 변경되지 않은 변경 사항을 처리 할 수 ​​있습니다. [이 대화 형 Git 치트 시트] (http://ndpsoftware.com/git-cheatsheet.html)를 참조하여 적용 가능한 명령을 검색 할 수있는 좋은 방향을 제시합니다. – florianb

관련 문제