2011-10-12 29 views
8

Tôi mới tham gia git và kiểm tra nó ngay bây giờ. Trên máy địa phương của tôi, tôi thường xuyên cam kết. Trong khoảng thời gian tôi muốn đẩy mã vào một repo trung tâm. Tại thời điểm này tôi xuất bản tất cả các cam kết thực hiện. Khi tôi làm việc một mình đây không phải là một vấn đề lớn, nhưng khi tôi làm việc với nhiều dev trên một dự án, điều này trở nên hỗn độn. Trong khi đó tôi muốn có tất cả các cam kết địa phương được bảo quản trên máy địa phương của tôi, chỉ trong trường hợp.git push, không đẩy tất cả các cam kết cục bộ

Đây có phải là cách hay để làm việc với git không? Điều này có thể không? Hay tôi đang nghĩ sai?

+0

Cả hai câu trả lời là một cách để thực hiện điều này ... rất nhiều để tìm hiểu :-) – Patrick

Trả lời

5

Một cách bạn có thể giải quyết vấn đề này là tạo cho mình một chi nhánh phát triển cá nhân trong kho lưu trữ cục bộ của bạn. Nó chỉ là một nhánh thông thường, không có gì đặc biệt, nhưng các cam kết trên nhánh sẽ không bị đẩy vào kho trung tâm khi bạn chạy git push. Khi bạn đã sẵn sàng chia sẻ các thay đổi của mình, hãy hợp nhất các cam kết từ nhánh cá nhân của bạn vào nhánh chính và sau đó bạn có thể đẩy chúng vào kho lưu trữ trung tâm.

Một biến thể về điều này sẽ là bắt đầu một nhánh mới cho mỗi tính năng lôgíc bạn làm việc, để bạn có nhiều nhánh phát triển cá nhân nhỏ thay vì một nhánh lớn. Sau đó, bạn có thể xóa các chi nhánh tính năng khi bạn hợp nhất chúng vào nhánh chính.

3

Luồng công việc Git khuyến khích bạn làm sạch các cam kết cục bộ (sớm và thường) thành một chuỗi cam kết hợp lý để người đọc cuối cùng từng bước thực hiện công việc mới của bạn. Điều này có thể được thực hiện bằng cách sử dụng tính năng git rebase -i và các công cụ khác. Với điều đó, bạn có thể sắp xếp lại, chỉnh sửa, chia nhỏ và chỉnh sửa các cam kết khi cần để làm cho mọi thứ trông đẹp mắt. Sau đó, đẩy rằng đặt các cam kết vào máy chủ và tất nhiên cũng giữ nguyên cam kết cục bộ.

Quy trình làm việc này không cần thiết. Bạn có thể đẩy tất cả các cam kết chi tiết của bạn lên máy chủ (nhưng bạn cho rằng bị "hỗn loạn"), hoặc bạn có thể đổ công việc của mình thành một cam kết và đẩy nó lên. Những gì bạn không thể làm một cách hợp lý mặc dù, là đẩy một cam kết đến máy chủ trong khi vẫn giữ một bộ khác cục bộ.

+0

Nếu bạn sử dụng nhánh, bạn có thể "đẩy một cam kết đến máy chủ trong khi vẫn giữ một bộ cục bộ khác." – jcoffland

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