단일 사용자 프로젝트의 경우 버전 관리를 처음 시작한 경우 처음에는 모든 워크 플로 및 기타 사항에 대해 처음부터 걱정하지 마십시오. 첫째, 커밋하는 데 익숙해 지십시오.
방금 프로그램을 실행하고 테스트 했습니까? 좋아, 커밋. 당신이 잘 모르는 뭔가를하려고하면 효과가 있을까요? 범하다. 일찍 그리고 자주 저 지르십시오. 자식에 대한 좋은 점은 커밋 할 나쁜 장소를 선택하면 커밋이 되돌릴 수 있다는 것입니다 (힌트 : 컴파일되지 않으면 나쁜 장소 일 수 있습니다. 그러나 예외가있는 경우 git rebase -i
및 git add -i
(일종의 첨단 도구이기 때문에 기본에 익숙해 져야합니다. (중괄호는 재미 있습니다!))).
이제 focus-git을 전환 할 때 유용한 도구가 많이 있습니다. 예를 들어
, 당신은
git stash save
힘내 다음이를 저장, 커밋되지 않은 모든 변경 소요되며, 커밋에게 마지막으로 돌아갑니다 ... 버그를 수정하지만, 이미 다른 작업의 무리를 갖고 싶어합니다. 버그를 수정하고 테스트하고 커밋 한 다음
git stash pop
버그 픽스 위에 모든 변경 사항이 다시 적용됩니다. 당신이있어 -이
당신이 작은 기능을 작동하지만, 다음이 실제로 종류의 복잡 실현 당신은 아마 한 번 이상 커밋 것입니다 경우
...
git checkout -b mynewbranch
그리고 당신은 갈 지금 새로운 지점에. 당신은 당신이 커밋되지 않은 변경 사항을 저장 git stash
와 함께이 사용할 수
git checkout someotherbranch
로 언제든지 다시 다른 지점을 얻을 수 있습니다 다음, 완전히 다른 무언가를 다른 분기로 교환합니다. 그리고 당신이 돌아 오기를 원할 때, git checkout mynewbranch
.당신이 만들 수있는 작은 버그 수정이, 전체 보관 한 것은 귀찮게하지 않으려는 경우
약간 더 고급 도구로
, 당신이이 자식 인덱스 덕분에
git add -i
# select what changes to include
git commit # commits only what you selected
할 수 - git add -i
을 사용하면 작업 복사본에서 인덱스로 복사 할 대상을 개별 라인 수준까지 정확하게 선택할 수 있습니다. git commit
은 커밋으로 저장합니다. 이렇게하면 다른 변경 사항들이 엉망으로 인해 발생하는 사소한 문제를 신속하고 간편하게 해결할 수 있습니다. 그러나 이것은 컴파일되지 않았거나 테스트되지 않은 것을 커밋했다는 것을 의미합니다. 따라서 완전히 부러진 것을 저 지르지 않도록주의해야합니다. 회귀를 추적하기위한 매우 유용한 도구 인 git bisect
을 깨뜨리기 때문에 일반적으로 코드가 완전히 손상되지 않도록해야합니다.
일단이 기본 흐름을 익숙해지면 몇 가지 프로세스를 추가 할 수 있습니다. 예를 들어 1.x 시리즈에만 버그 수정을 위해 v1.x
브랜치를 유지할 수 있습니다. 또는 무엇이든. 자신에게 적합한 워크 플로를 사용하십시오.
커밋 빈도가 +1입니다. 투입은 싸다; 일찍 그리고 자주! – Nic
+1 좋은 답변입니다. 그래도 작은 수정. 그것은'git stash save'이거나,'git stash'이어야합니다. – vhallac
@vhallac, oops -'pop'과 섞어서 :) – bdonlan