2014-06-24 11 views
7

Tôi đang sử dụng SmartGit/Hg. Tôi đã chỉnh sửa một số tệp hoạt động trên hai tính năng mới riêng biệt. Bây giờ khi tôi xong làm việc trên Feature Một, tôi muốn cam kết công việc của tôi, nhưng tôi không thể chỉ cần cam kết tất cả các file đã chỉnh sửa của tôi, vì chúng chứa các thay đổi của Feature B, mà tôi không muốn cam kết chỉ là bây giờ.Làm thế nào để chỉ hành nghề cụ thể sử dụng SmartGit/Hg

Trả lời

20

Bạn có thể đạt được điều đó bằng cách sử dụng lệnh stage. Trước hết, giai đoạn tất cả các file có chứa những thay đổi được thực hiện. Trong ví dụ này, tất cả các file ngoại trừ một sự gọi là DoNotCommit.php chứa ít nhất một dòng chúng tôi muốn cam kết: enter image description here

Tiếp theo, chúng ta cần phải mở Index biên tập cho tất cả các file có chứa dòng Feature MộtFeature B. Trong ví dụ này, chúng ta cần phải kiểm tra Main.phpNewFeatures.php: enter image description here

này mở ra Index biên tập. Bạn thấy ba tab với mã của bạn: Repository (HEAD), Index, Working Tree: enter image description here

Đối với chúng tôi, chỉ có Repository (HEAD)Index tab rất quan trọng. Các Repository (HEAD) tab hiển thị các nội dung đã cam kết của tập tin. Tab Chỉ mục hiển thị các thay đổi mà chúng tôi sẽ cam kết. Hãy nói rằng chúng tôi chỉ muốn cam kết khối đầu tiên của mã, với myNewCompletedFeature chức năng: enter image description here

Như bạn thấy, chúng tôi loại bỏ tất cả các mã, chúng tôi không muốn cam kết từ Index tab. Điều này làm không xóa mã khỏi Cây làm việc, có nghĩa là bạn không mất bất kỳ thay đổi nào của mình. Bây giờ chúng tôi cũng làm như vậy với tệp NewFeatures.php mới và lưu lại: enter image description here

Trong bước cuối cùng, chúng tôi sẽ thực sự cam kết tính năng mới. Đảm bảo chọn Thay đổi theo giai đoạn trong cửa sổ cam kết!enter image description here

Chà, chúng ta đã xong!

+2

Giải thích thú vị với Gifs động! – deeshank

+2

Khá có thể câu trả lời rõ ràng nhất mà tôi từng thấy trên SO. –

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