2016-11-19 1 views
0

GIT와 GitKraken을 동시에 학습하십시오. 한 파일에서 작은 변경을했습니다 - aa.cpp, GitKraken의 도움으로 커밋하고 원격 저장소로 푸시해야합니다. 갑자기 내가 싫어하는 프로젝트 디렉토리에 있던 모든 파일을 밀어 냈다.마지막 커밋을 제거하고 밀어 넣기

이제 저장소에서 원치 않는 파일을 제거해야합니다. 필자는 원격 저장소에서 마지막 푸시를 삭제하고 다시 커밋하고 다시 푸시하려고합니다. GIT 명령을 사용하여 마지막 커밋을 삭제하는 방법. GitKraken으로 동일하게 만드는 방법은 무엇입니까?

+0

이 대답을 읽고 원하는 커밋을 제거한 후 원격으로 누르기 만하면됩니다. http://stackoverflow.com/questions/34519665/how-to-move-head-back-to-a-previous-location-detached-head/34519716#34519716 – CodeWizard

답변

4

이미이 커밋을 푸시했다면, 다른 누군가가 그 지사를 당길 수도 있습니다. 이 경우, 지점의 역사는 바람직하지 않다 재 작성하고 대신이 커밋 복귀해야

git revert <SHA-1> 
git push origin branch 

을 여기 <SHA-1> 제거하려는 커밋의 커밋 해시입니다. 이 해시 값을 찾으려면 지점에 git log을 입력하고 첫 번째 항목을 검사하십시오.

git revert을 실제로 사용하면 은 제거하려는 커밋의 미러 이미지 인 새로운 커밋 인을 추가합니다. 이는 공용 브랜치에서 커밋을 취소하는 바람직한 방법입니다. 왜냐하면 단순히 브랜치에 새로운 정보를 추가하기 때문입니다. 당신이이 지점을 사용하는 유일한 사람임을 확신하는 경우

, 당신은 다른 옵션이 있습니다

git reset --hard HEAD~1 

git push --force origin branch 

다음을하지만 당신은 아무도 경우이 옵션을 사용해야합니다 다른 사람이이 지점을 공유하고 있습니다.

0

별도의 브랜치에서 작업하고 마스터가 아니라 (git-flow 사용시 개발할 것) 바란다.
우리는 나중에 업데이트 된 버전을 밀어거야, 원격 분기를 제거 : 내 단계는 것)

, 내 예를 들어 나는 지점 이름으로 my-broken-branch 사용합니다.

git push origin :my-broken-branch 

다음으로 로컬 분기에서 마지막 커밋을 제거하십시오. HEAD^1은 현재보다 커밋 된 커밋을 나타냅니다.

git reset HEAD^1 

이제 필요한 파일을 추가하고 익숙한 방식으로 커밋하십시오. 마지막으로 지점을 원격 위치로 밉니다. 그것은 거기에 지점을 다시 작성하고 아무도 변경된 커밋에 대해 알 필요가 없습니다.

git push origin my-broken-branch 
0

그것에 대해 이동하는 방법은 우리가 다음 우리가 현재하고있는 지점, 확인할 수있는 git status를 입력하는 것입니다 : 다음

git log 

을, 당신은 이런 식으로 뭔가를 볼 수 있습니다 :

commit aa09a82fb69af2d1aebde51d71514f7a03c3a692 
Author: User <[email protected]> 
Date: Fri Nov 4 15:36:22 2016 -0400 

    Fixed issue with vertical scroll being forced. 

commit 411771837efe3ed555395e77fd35105a500ab758 
Author: User <[email protected]> 
Date: Thu Nov 3 15:50:42 2016 -0400 

    Added Notifications. 

commit f43b262f4e02b5a7268280e1230d44e36d1e547b 
Author: User <[email protected]> 
Date: Thu Nov 3 12:11:00 2016 -0400 

    Your Bases Are Belong To Us. 

그래서,이 commit aa09a82f이 마지막이다라고 우리에게 이야기하고 commit 41177183는, 그 전에 하나입니다

git reset --hard 41177183 

... 원격 백업을 유지하면서 그 커밋으로 되돌아갑니다. 다른 git status으로 모든 더블 푸시에 대한 모든 세트 (멀티 태스킹 때 개인적으로 특히, 내 현재의 지점을 확인하는 방법에 대한 약간의 강박 해요)이 있는지 확인 :이 시점에서

git push origin :<branch_name> 
git push origin <branch_name> 

을, 당신은 모든해야 설정, 그러나 그것은과 그 후속 항상 좋은 : 당신의 지점 목록을 정리하고 당신에게 로컬 표시 및 원격

git fetch --all --prune 
git branch -av 

이 ... 커밋 메시지를 비교합니다.

팀과 함께 일하는 경우 앞으로 나아 가기 전에이를 알고 있어야합니다. 마지막 커밋과 푸시를 제거하기 전에 분기를 당기거나 끝내기를 원하지 않습니다.