2012-06-11 3 views
1

나는 커밋하고 힘내로 밀어. 동료가 변경 사항을 적용합니다. 더 많은 변경 사항을 적용합니다.나의 커밋을 롤백

변경 사항을 테스트 할 수 없다고 들었습니다. 이 릴리스는 다음 릴리스에 포함되어야합니다. 내 모든 변경 사항과 변경 사항 만 취소해야합니다. 어떻게해야합니까?

Git으로 변경 사항을 밀거나 넣을 때 거북이를 사용합니다. 나는 Windows XP 기계를 사용하고 있습니다.

예, 커밋을 수행하기 전에 동료가 작업을 가져 왔습니다.

필자의 변경 사항은 완전히 다른 파일에 대한 것이었지만 언급해야합니다. 제 동료 중 누구도 그들을 만지지 않았습니다.

이것은 하나의 분기이며 통합 분기입니다.

+0

좋은 응답을 얻으려면 설정에 대한 정보를 더 많이 게시해야 할 것입니다. –

+0

예, 다소 모호합니다. 새 동료를 밀어 넣기 전에 동료의 커밋을 끌어서 병합 했습니까? – redhotvengeance

답변

2

단순히 git revert 명령을 사용하지 않는 이유는 무엇입니까?

+0

커밋이 공유 된 repo로 푸시되었을 때 적절한 방법입니다. – wadesworld

+0

"나는 커밋해서 힘내라." ... 나에게 소리 인 것처럼 들린다. – Yanflea

0

초기 통합 레포는 I이고 커밋이 Y이고 나중에 동료가 커밋하면 C가됩니다. 그러면 개발 라인이 이렇게 보일 수 있습니다. 파일 시스템은 현재 F입니다. 당신이

을 언급 한 바와 같이

  (F)  
I--Y--C1--C2 
      ↑ 
      HEAD 

는 그리고 나는 나의 변화가 완전히 다른 파일이라고하지만 언급해야합니다. 제 동료 중 누구도 그들을 만지지 않았습니다. 당신은 내가 도달 할 때까지

그래서 당신은 당신 어떤 변경을하기 전에 커밋, 리셋 HEAD ~ 1 일을 계속 할 수있다. 커밋 한 후에 두 가지 커밋이 있다고 가정 해보십시오. 당신은 I.

git reset HEAD~3 

그리고 파일이 지금 방금 시스템에서 파일을 삭제할 수

  (F)  
I--Y--C1--C2 
↑   
HEAD 

처럼 당신의 동료들의 파일을 추가 할 수 있습니다 보존으로 커밋에 도달하려면이 옵션을 사용할 수 있습니다 (인덱스에 이미 FileSystem에 이미 있음) 커밋을합니다. 그리고 이제 dev 디렉토리는 여러분의 변경없이 보일 수 있습니다.

(F1) 
I--C3 
    ↑ 
    HEAD 

권장되는 방법은 아닙니다. 나는 그것을 사용한 적이 있지만 캔트 말할 수 있도록 할 권장되는 방법은,

git revert HEAD^ 

을 사용하고 있습니다.

편집 : 그것을하는 또 다른 방법.
커밋 "Y"의 "SHA KEY"를 찾고 "I"바로 전에 커밋하십시오.7a2ab465aad23dc66a23ade897deb65a5bf9419d
그리고 키위한 것입니다 : 모두 사용 intercommit

git tag Intercommit -a 906488ac2d5a8468d725351df80e3b0f6338c9be 
git tag YourCommit -a 7a2ab465aad23dc66a23ade897deb65a5bf9419d 

체크 아웃 같은 커밋에 대한 906488ac2d5a8468d725351df80e3b0f6338c9be
태그를 확인 그것은

git log 

사용하여 수행 할 수 있습니다
는 Y 키의이 말할 수 있습니다

git checkout Intercommit 

그럼 이제 디바이스의 라인 당신은 리베이스와 하나가

http://www.kernel.org/pub/software/scm/git/docs/v1.7.3/user-manual.html#rewriting-one-commit

에 커밋 재 작성 및 대한 자세한 내용을 확인할 수 있습니다

I--C1--C2 
     ↑ 
     HEAD 

모양을

git rebase --onto HEAD YourCommit master 

를 사용하여 REPO을 리베이스

http://learn.github.com/p/rebasing.html