2013-07-01 5 views
2

나는 컴파일하는 데 오랜 시간이 걸리는 많은 소프트웨어에서 작업한다. 자주 로컬에서 개발 한 다음 비좁은 원격 시스템에서 컴파일/실행합니다. 힘내라이 모든 것을 매우 쉽게 만든다 : 나는 지역적으로 커밋하고 그 지점을 원격지의 자식 리포에서 끌어 낸다. 불행히도 컴파일 할 때 오타 및 기타 작은 오류를 수정하기 위해 코드를 작성하고 자주 커밋하는 실수를합니다. 이러한 마이크로 커밋은 내 로그를 더하고 깔끔하게 정리합니다. 나는 이런 식으로 뭔가 할 수있는 방법을 찾고 있어요 : 그래서컴파일 머신을위한 워크 플로우

#local> git commit -m "My useful commit message and the bulk of my commit" 

#remote> git pull local development_branch 
#remote> *compile my code and get a stupid error* 

#local> *fix error* 
#local> git add *fixed file* 
#local> git commit --amend 

#remote> *force an update to remote that causes it to look like master* 

을, 나는 '후 내 로컬 지점처럼 내 리모컨을 업데이트하는 마지막 단계를 수행하는 명령을 찾고 있어요 커밋을 수정했습니다. 현재 내가하는 일은 수행하는 것입니다.

git reset --hard HEAD~1 
git pull local development_branch 

이 코드는 작동하지만 실제로는보기 흉한 것처럼 보입니다. 내가하려는 일을 성취 할 수있는 더 좋은 방법이 있습니까? 바로 원격의 위치로 직접 다시, 다시 당겨 다음 "시간을 거슬러가는"대신의

+1

git에 관한 질문과는 관련이 없습니다. 프로그램을 컴파일하는 데 오랜 시간이 걸리는 경우 변경된 파일 만 다시 컴파일하기 위해'make '또는 유사한 것을 사용하여 많은 시간을 절약하지 못할 수 있습니까? –

+0

내가 진정으로 궁금해하기 때문에 이것을 비꼬거나 스너키라고 해석하지 마십시오. 컴파일을 개별적으로 빌드 할 수있는 개별 단위로 나눌 수없는 이유가 있습니까? 당신이 묻고있는 것을 할 수 있어야하지만, 이것은 개발 프로세스를 다시 검토해야 할 강력한 이유입니다. – austin

+1

당신은 아마 그것을 알고있을 것입니다. 그러나 그렇지 않은 경우에, 문제를 위해 특별히 만들어진 소프트웨어 카테고리가 있습니다 : 지속적인 통합. [Jenkins] (https://jenkins-ci.org)와 같은 – berkes

답변

5

는 :

git fetch local 
git reset --hard local/development_branch 
+0

이 방법은 현재의 솔루션보다 약간 복잡합니다. 그래도이 작업을 수행하는 더 좋은 방법이있는 것처럼 보입니다. 다른 좋은 반응을 얻지 못한다면이 해결책을 올바른 것으로 표시 할 것입니다. 답장을 보내 주셔서 감사합니다! – TimmyJ

+0

당신은 역사를 다시 쓰고 있습니다 - 이것이 어떻게 작동하는지입니다. – Amber

0

당신은 compilability을 테스트하기 위해 precommit hook을 사용할 수 있습니다 (심지어 단어이다?) 커밋하기 전에. 후크는 stored in .git/hooks이며 쉘 스크립트입니다.

0

당신은 빨리 감기 갱신없는 경우에도 원격 대응으로 (즉 development_branch) 그것은 현재의 분기를 덮어 쓰게됩니다

#remote> git pull -uf local development_branch:development_branch 

사용할 수 있습니다.

는 UPDATE :

-u|--update-head-ok는 그것이 HEAD에도 지점을 업데이트 부여합니다.

fetch은 더러운 색인을 남기 때문에, fetchpull으로 바꿉니다.

+0

첫 번째 솔루션은 현재 원격 시스템에서 development_branch를 체크 아웃 할 때 작동하지 않는 것으로 나타납니다 (거의 항상 내 시나리오 에서처럼). 여하튼, 나는 앰버의 대답을 받아 들였다. 답장을 보내 주셔서 감사합니다! – TimmyJ

+0

@TimmyJ 아, 완전히 테스트하지 않아서 죄송합니다. 제 답변을 업데이트했습니다. – dyng

관련 문제