2014-05-01 4 views
1

So. 이 결과를 얻으려면 몇 가지 이상한 단계를 밟았습니다.Checkout 최근에 생성 된 지점

dev이라는 지점이 있다고합시다. 나는 그 순간에 그것에있다.

이라는 또 하나의 지점이 있습니다. 해당 지점은 이미 원격으로 생성되었지만 로컬에는없는 지점이 있습니다.

따라서 내가 수행 한 작업은 분기 위에 로컬로 dev2이라는 새 분기를 만든 git checkout -b dev2입니다.
이 후, 나는 단지 git pull origin dev2을 했으므로, 그것은 모든 것을 가지고있다. 그것은 dev 가지에있다.
몇 가지 충돌을 수정해야한다는 메시지가 나타납니다. 그래서 그렇게했습니다. 내 수정 프로그램을 투입하고 그들을 밀었습니다. 지금은 dev2 가지가 원격지 이전과 다릅니다.

나의 사랑하는 dev2 가지를 정상 상태로 되돌릴 수있는 방법이 있습니까?

답변

2

다른 지점 dev2가 다른 사람에 의해 추진 된 경우, 그 방법은 로컬에서 (이다 얻을 : 당신이 필요가 없기 때문에,

git checkout master 
git branch -d dev2 
git fetch 
git checkout -b dev2 origin/dev2 

두 번째 명령은 당신이했던 'dev2'지점을 삭제 아직 아무것도 병합 : 당신은 그냥 가져오고 dev2을 참조 할 필요

을 나중에, 당신은 devdev2을 병합하고 충돌을 병합 해결할 수

주.. : 이미 업스트림 저장소로 다시 푸시 (git push --force dev2)하면 작동하지 않습니다.

1
당신이 롤백하려는 원격 커밋 당신은 확인할 수 있습니다

다음, 하드,이 명령의 출력에서 ​​그것은

git log origin/dev2   # See history on remote 

으로 재설정을 위해 (당신이 다시 가고 싶지 커밋의 식별 예 3157ee3718e180a9476bf2e5cab8e3f1e78a73b7)

그럼 커밋 롤백 및 업데이트 원격

git checkout dev2    # Go to branch dev2 
git stash      # Discard your current changes 
git reset --hard <hash>  # Reset to the state of the hash 
git push --force origin dev2 # Forcefully update the remote 
관련 문제