2012-07-04 3 views
5

우리는 TFS를 사용합니다. Git-TFS 도구를 사용하여 로컬 커밋 작업을 할 때 TFS 저장소로 밀어 넣기 전에 더 많은 유연성을 갖도록 노력하고 있습니다.Git-Tfs : Git Commit 당 TFS 변경 집합?

나는이 작업을 수행하지만, git tfs ct을 수행하면 모든 커밋을 하나의 TFS 변경 세트로 검사합니다. 나는 뭔가를 놓치고 있는가, 아니면 어떻게 작동 할 것인가? 개별 커밋을 개별적으로 TFS에 개별 변경 집합으로 푸시하지 않으면 처음부터 git-tfs를 사용하는 목적을 무력화시키는 것 같습니다.

답변

9

나는 새로운 자식 변경 집합을 한 번에 하나씩 tfs로 커밋하는 rcheckin 명령을 사용하여 각 tfs 커밋 후에 나머지 커밋을 리베이스하여 정상적인보고 트리를 만듭니다. checkintool 하위 명령을 사용하면 mergecommit이 생성됩니다. git 커밋을 부끄럽게 생각하지는 않습니다.

그래서 우리는 일반적인 git 워크 플로를 사용합니다 : 기능 분기를 체크 아웃하고, 작업하고, 체크 아웃 마스터와 'git tfs pull', 필요한 경우 master에 대해 기능 분기를 rebase 한 다음 기능을 master에 병합하고 git tfs rcheckin을 수행하십시오. 마지막으로 지형지 물 분기를 삭제합니다. 드물게 이것은 (tfs 파일이 잠김으로 인해) 실패했습니다. rcheckin은 모든 것을 합리적인 상태로 두어 정지 시키므로 장애가 사라지면 계속할 문제가 없었습니다.

모두 모두 git-tfs는 TFS를 사용합니다.

+0

좋아요! 그건 내가 원하는만큼 효과가있다. 나는 왜 Github readme와 wiki 페이지가 그 명령을 언급하지 않는지 궁금하다. – Dan

+0

잠긴 파일로 인해 실패한'rcheckin'에 대해 싫어하는 유일한 점은 변경 사항이 _ 부분적으로 TFS 서버로 전송된다는 것입니다. 내가 Git 수줍음을 좋아하고 TFS를 선호하는 사람들로 구성된 팀과 일하기 때문에 나는 rebase -i를 사용하여 내 커밋을 스쿼시해야 성공/실패가 항상 원자 적이다. –