2010-06-10 7 views
1

git과 Rails로 원하는 설정으로 조언이 필요합니다.Rails와 Git 워크 플로우 어드바이스

기본적으로 GitHub의 기본 응용 프로그램 템플릿을 사용한 첫 번째 Rails 응용 프로그램에 대해 많은 변경 작업을 수행했으며 이제는 상당히 사용자 정의 된 전체 응용 프로그램이 있습니다.

이제 기본 응용 프로그램 템플릿 내의 파일에 대한 모든 변경 사항을 추출하고 변경 사항을 github repo의 포크에 적용했습니다. 이상적으로는 기본 응용 프로그램 템플릿을 응용 프로그램의 분기로 사용하고 마스터로 리베이스해야합니다. 이것은 실제로 가능합니까?

내가 원하는 이유 : 기본 응용 프로그램을 최신 기능으로 유지하고 싶습니다. 다음 프로젝트에서는 github 포크에서 기본 응용 프로그램 템플릿을 복제하여 작동시킬 수 있습니다. 마찬가지로 누군가 기본 응용 프로그램 서식 파일에 버그를 수정하면 기본 응용 프로그램 서식 파일을 분기로 가지는 응용 프로그램과 이러한 수정을 병합 할 수 있습니까?

이것이 가능합니까? 이 작업을 수행하는 더 나은/더 일반적인 방법이 있습니까?

미리 감사드립니다.

감사합니다, 나는 당신이 업데이트의 무리의 ontop을 전체 프로젝트의 역사을 리베이스 으로 생각하는 것보다 더 어려울 거라고 생각하지만, 흥미로운 아이디어

대니

답변

1

. 여기

는 앱 템플릿 그냥 보석 파일이나 플러그인의 모음이 있다면이 운동 할 수

# First fork the app template on github 
# Then clone it locally 
git clone your_fork_of_app_template_url 

# Setup a remote to the original repository (the one you forked from) 
git remote add original_base original_app_template_url 

# make a branch at the root so you have someplace to pull in new changes 
git checkout -b app_template original_base/master 

# go back to your master and write your app 
git checkout master 
git commit 
git commit 
... 

# Then later update your app template if it has changed 
git checkout app_template 
git pull original_base 

# now Rebase your entire app on top of the updated template (not sure how to go about this with multiple branches like edge) 
git checkout master 
git rebase app_template 

:-) 의사 자식에, 그것을 할 수있는 방법입니다. 하지만 그때도 masterapp_template을 병합하는 것이 더 좋으므로 전체 앱 기록을 다시 작성할 필요가 없습니다.

+0

잠재적 인 병합 충돌을 소개하는 것 외에 리베이스는 기록을 다시 쓰고 커밋의 sha1을 변경합니다. 다른 사람들이 당신의 repo를 원격으로 사용하고 있다면, 이것은 큰 no-no입니다. 또한 버그 추적 시스템에있을 수도있는 연관성을 깨뜨릴 것입니다 ... – grossvogel

+0

나는 Git 자습서로 돌아 가야 할 것 같아요. 스크린 캐스트를 통해 더 잘 이해할 수 있습니다. 나는 뭔가를 놓쳐 버렸을 것입니다! 도움 주셔서 감사합니다. – dannymcc

관련 문제