2012-05-17 2 views
3

현재 로컬 저장소가 원점 뒤에 커밋되었다고 가정합니다. 원래 저장소와 충돌하지 않는 변경 사항을 로컬 저장소에 커밋한다고 가정합니다. 처음에 변경 사항을 원본에서 가져 오거나 병합하지 않고이 변경을 원본으로 푸시 (push) 할 수 있습니까?로컬 저장소가 원본을 병합하지 않았을 때 git에서 커밋하기 HEAD

+0

왜 처음부터 당길 수 없습니까? – alex

+0

원격 변경 사항을 지금 당장 사용하고 싶지 않기 때문에 버그가 커밋되었습니다. – yannisf

답변

3

좋아, 빨리 감기가되지 않는 푸시로 인해 거부되고 있으므로 리모컨에서 최신 업데이트를 가져 오지 않을 이유가 있습니다. 변경 사항을 분기해야 할 분명한 것 같습니다.

그래서 귀하의 경우 HEAD ~ 1, n은 ~, 머리를 일반 지점에서 AA 분기를 만들 수 있습니다 :

git branch myfeat HEAD~1 

그런 다음 그것을 빨리 감기 :

git checkout myfeat 
git merge master 

이제 새로운 지점이있다 일반적인 점, 단지 있도록 :

git push origin myfeat 

원격 REPO는 이제 다음과 같습니다

--X---X--X--Xbug  (master) 
      \ 
      \--Xfeat (myfeat) 

이제 다른 사람들이 내 기능을 병합/리베이스 할 수 있습니다. 궁극적으로 버그를 수정하고 로컬로 가져와야하거나 사용자 정의 로컬 마스터를 유지하는 것과 약간 다른 워크 플로우를 고안해야합니다.

0

당신은 당신이 설명한 무엇을 할 수없는,하지만 난 당신이 원하는 생각입니다 :

git pull --rebase 
git push 

위의 명령은 (병합을 커밋 만들지 않고) 정상적으로 원격 REPO와 지역의 repo를 병합하여 로컬 커밋을 밀어 버린다 리모컨으로

+0

그래도 그에게 버그를 로컬로 가져올 수 있습니다. –

+0

OP가 그의 코멘트를 게시하기 전에 나는이 대답을 게시했다. 어쨌든, 나는 이것이 문제를 해결하는 올바른 방법이라고 주장한다. 버그가 있기 때문에 버그를 고쳐야한다. 변경 사항을 원격 커밋 (원격 커밋의 ** rebase ** ing)으로 병합하고, 버그를 수정하고 커밋 및 밀어 넣기. – neevek

0

그가 그런 경우 그는 그것이 분명 그래서 내가 일반적으로 이러한 것들에 대한 trash/somebranchname을 사용

git push origin HEAD:refs/heads/some_branchname_not_in_use 

함께 할 수있는, 자신의 변화의 백업이 원격 순수로 밀어 원하는 가능 목적.

관련 문제