2012-11-13 2 views
0

특정 커밋 ID로 되돌리고 싶습니다. 나는 "git rm"-ed 파일을 복원한다. 그 이후로 커밋 된 모든 커밋을 버리십시오. 그리고 그 repo를 저지하십시오. 어떻게하면 좋을까요?Git 엉망진창 풀기

답변

2
$ git reset --hard <commit ID> # Will reset to a specific commit 
$ git push -f <remote>   # Push branch into remote, with force 

참고; 그들은 당신의 변화를 얻기 위해이 작업을 수행해야한다 : 이것은 또한 현재의 지점에서 자신의 변경 사항을 날려 것

$ git fetch <remote> 
$ git reset --hard <remote>/<branch> 

참고. 그러나 현재 지사에서 만든 지사가있는 경우에는 지회에서 "지워진"커밋을 계속 받게됩니다.

+0

'푸시 -f'가 범죄라고 생각하는 사람들이 있습니다! –

+0

당신이하고있는 일을 안다면 어떤 상황에서는 유용합니다. – mipadi

0

아마도 당신은 git reset --soft {ID}을 찾고 있습니다. 그것은 하나 또는 두 개의 이전이 '타격 "정말 --hard 모드도 유용 할 수 왜, 무엇을 의미하는지

git reset --<mode> [<commit>] 
     This form resets the current branch head to <commit> and possibly updates the index (resetting it to the tree of <commit>) and the working tree depending on <mode>, which must be one of the 
     following: 

     --soft 
      Does not touch the index file nor the working tree at all (but resets the head to <commit>, just like all modes do). This leaves all your changed files "Changes to be committed", as git 
      status would put it. 

확실하지.

0

사용할 수 자식 되돌리기는 명령.

을 my_commit_id git revert HEADgit revert HEAD^으로 각각 수행하십시오.

HEAD 대신에 커밋 ID를 사용하십시오. 이럴 경우 커밋 ID를 사용하십시오.

이렇게하면 다시 커밋 메시지를 편집하고 새 커밋을 만들 수있는 옵션이 제공됩니다. (거꾸로 역사를 커밋에 지점을 강제 이후) 그들은 단순히 변경에 끌어 경우의 repo를 복제 한 사람이 사소한 문제가 발생할 수 있음을 는`