2012-07-04 46 views
5

Tại nơi làm việc, chúng tôi sử dụng TFS và tôi đang cố gắng để công cụ Git-TFS hoạt động để tôi linh hoạt hơn khi làm việc với các cam kết cục bộ trước khi đẩy chúng vào repo TFS của chúng tôi.Git-Tfs: Một thay đổi TFS cho mỗi Commit Git?

Tôi đã làm việc này, nhưng khi tôi thực hiện git tfs ct, nó sẽ kiểm tra tất cả các cam kết của tôi thành một thay đổi TFS. Tôi đang thiếu một cái gì đó, hoặc là nó như thế nào nó phải làm việc? Nếu nó không đẩy từng cam kết riêng lẻ của tôi vào TFS dưới dạng các thay đổi riêng biệt, thì có vẻ như nó sẽ đánh bại mục đích sử dụng git-tfs ngay từ đầu.

Trả lời

9

Tôi sử dụng lệnh rcheckin cam kết thay đổi git mới của bạn thành từng phần một, xóa lại các cam kết còn lại sau mỗi tfs cam kết mang lại cây trông bình thường. Sử dụng subintand checkintool tạo ra một thỏa thuận hợp nhất - tôi không nhớ lại nó git cam kết mặc dù.

Vì vậy, chúng tôi sử dụng luồng công việc git thông thường: thanh toán chi nhánh tính năng, làm việc trên đó, thanh toán chính và 'git tfs pull', rebase nhánh tính năng so với chính nếu cần. Cuối cùng, xóa chi nhánh tính năng. Trong những dịp hiếm hoi, điều này đã thất bại (do tệp tfs bị khóa), rcheckin dừng lại để mọi thứ ở trạng thái hợp lý để khi tắc nghẽn đã bị xóa, không có vấn đề gì để tiếp tục.

Tất cả trong tất cả, git-tfs làm cho việc sử dụng TFS dễ chịu.

+0

Tuyệt vời! Điều đó hoạt động đúng như tôi muốn. Tôi tự hỏi tại sao các trang readme và wiki của Github không đề cập đến lệnh đó. – Dan

+0

Điều duy nhất tôi không thích về 'rcheckin' thất bại do tệp bị khóa là các thay đổi của bạn là _partially_ được gửi đến máy chủ TFS. Vì tôi làm việc với một nhóm người Git nhút nhát và thích TFS, tôi buộc phải đè bẹp các cam kết của mình bằng 'rebase -i' để thành công/thất bại của tôi luôn luôn là nguyên tử. –

Các vấn đề liên quan