2009-05-22 26 views
10

Nếu tôi đã phải tập tin sau đây về phát triển tôi chi nhánh:Làm thế nào để "chia" file với git

# file.rb 

class Code 
def methodA 
    'aA1' 
end 
def methodB 
    'bB2' 
end 
end 

nhưng trên chi nhánh chủ của tôi, tôi muốn tách các phương pháp vào các tập tin khác nhau:

# in file.rb 
class Code 
    def methodA 
    'aA1' 
    end 
end 

# in extra.rb 
class Code 
    def methodB 
    'bB2' 
    end 
end 

tôi chỉ đơn giản có thể tạo ra các tập tin trên phát triển, sau đó kiểm để chủ, rebase và t riêng anh ta có thể đặt mọi thứ lên để khi tôi thực hiện các thay đổi đối với phát triển nó sẽ được chuyển sang "phần" bên phải của tệp trên chính?

+0

Có thể trong tương lai khi trình điều khiển hợp nhất/hợp nhất 'đổ lỗi' được triển khai ... –

Trả lời

4

Để phân tách "được chuyển sang phần" bên phải "của tệp trên 'master'" sẽ ngụ ý Git có thể phát hiện ra sự tách.

Và như minh họa cho điều này recent thread (tháng này: tháng 5 năm 2009), Git chưa hoàn toàn ở đó.
Điều đó có thể làm việc cho các tệp lớn với một phần nhỏ trong đó chia thành một tệp khác, nhưng đối với các tệp nhỏ, nội dung xuất hiện "quá khác" đối với trình phát hiện đổi tên git để nhận các thay đổi.

Vì vậy rebase 'master' trên 'development' có thể làm việc, miễn là bạn đã không xuất bản (push) 'master' từ 'development' đã được thực hiện, bởi vì như một hoạt động (rebase) sẽ viết lại SHA-1 các cam kết về 'master' chi nhánh (kể từ khi họ được tái hiện lại trên đầu trang của các cam kết của 'development' chi nhánh)

Như tôi đã trình bày trong rebase vs.merge, nếu chi nhánh phát triển của bạn không phải là "quá xa" (trong nhiệm kỳ của những thay đổi từ chủ , một chiến lược khác sẽ là để rebase phát triển trên đầu trang của chủ, làm cho sự phân chia, và sau đó hợp nhất phát triển trở lại để làm chủ (nhanh về phía trước hợp nhất tại thời điểm này)

+1

Bài đăng này đã được 7 tuổi, gần đây có cải tiến nào không? –

+0

@StrategyThinker Đối với một tập tin nhỏ như vậy, tôi không nghĩ vậy. – VonC

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