2011-11-06 2 views
1

내가 GIT 및 저장소에 총 신인 해요 변경, 그래서 문제에 달려 내가 뭔가 잘못하고 있어요 경우 잘못된GIT 커밋하지

는 잘 모르겠어요 무슨 짓을했는지 잘 모릅니다하지만 내가 한 내 로고 기계

  • 에 GIT의 REPO를 복제

    1. 다음 나는 내가하고 싶었던 것은 실제로 작동하는지 확인 정력 통해 서버 자체에 약간의 변화를 만들어 작업 "아마 이것이 짓하는 내 실수는 "
    2. 내가 수행 한 내 로컬 저장소에 git pull 모든 최신 커밋을 보장합니다.
    3. 로컬에서 로컬로 변경 한 내용은 git status을 통해 로컬에서 두 개의 파일이 수정 되었음이 나타났습니다. 그럼 난 내 변경 사항을 밀어 git push을 시도하고, 이쪽은 내 모든 곳에 이미 그때 내 파일을 최선을 다하고
    4. 일까지 로컬 자식 커밋과 git push 뭔가,
    5. 내가에 로그인 실제로 않았다 이제 다음 자식 푸시 보여 주었다 서버가 git status,을 수정했는데 수정 된 파일이 두 개있는 것으로 나타났습니다. 그런 다음 git log에 가서 로컬에 커밋을 보였습니다. 그런 다음 파일 서버 쪽을 다시 커밋하고 변경 사항은 적용되지 않았습니다.
    6. I는 A git reset --hard HEAD하지만 여전히 내 변화가 보이지 않았다, 나는

    를하고있는 중이 야 무슨 잘못을 했습니까?

  • +0

    푸시하기 전에 변경 사항을 커밋하셨습니까? – NARKOZ

    +0

    @ Narkoz - Thia 처음으로 나는 두 번째 시도하지 않았다. – Roland

    답변

    1

    작업 트리가 연결된 저장소로 이동하는 것처럼 들립니다. 문제가 발생하지 않도록하려면 git clone --bare (또는 이와 동등한 것)으로 만든 저장소 만 푸시하는 것이 좋습니다.

    어쨌든 non-bare repos로 푸시하면 서버에서 다음 명령을 수행해야합니다. 그러면 모두 로컬 (커밋되지 않음) 변경 사항이 손실됩니다.

    git reset --hard HEAD 
    git checkout -f 
    
    0

    변경 사항을 색인에 추가 한 다음 커밋해야합니다.

    git add modified_file 
    git add other_file 
    git commit -m "message" 
    

    다음 커밋 구성하는 인덱스의 사용은 (자식 - GUI의 무대 화물선 메뉴 옵션을 참조)이 가능 같은 것들에만 수정 된 파일의 변경 사항 중 일부를 추가 할 수 있습니다. 인덱스에 올바른 수정 세트가 있으면 git commit이 커밋을 만듭니다. git push은 업스트림 리포지토리에없는 저장소에 포함 된 커밋을 보내는 데 사용됩니다. 따라서 로컬쪽에 새로운 커밋이 없으면 아무 것도 수행되지 않습니다.

    관련 문제