2010-05-07 27 views
13

Tôi có một repo nơi 'master' đang đi theo một hướng nhất định, và nhánh thứ hai 'foo' sẽ khác nhau đối với một vài cam kết, sau đó theo dõi tất cả các thay đổi tiếp theo đối với 'master' sau đó. Đây là tất cả bởi sự lựa chọn của khóa học.Subversion có --record-only cho việc hợp nhất, làm cách nào để tôi thực hiện tương tự trong Git?

Trong Subversion, bạn có thể thực hiện việc hợp nhất - chỉ ghi lại để đánh dấu mọi thứ là "hợp nhất đã xảy ra" mặc dù không có thay đổi thực tế nào được thực hiện. tức là điều này thay đổi các số theo dõi hợp nhất trong các thuộc tính gắn liền với các thư mục trong nhánh mục tiêu.

Tôi đã có một vở kịch với ..

git merge --no-cam kết tổng thể

.. như một cái gì đó tôi có thể để tinker với trước khi tôi làm như cam kết, nhưng nó đang tạo ra một đống lộn xộn của nhánh mục tiêu cho một phần của thay đổi trong câu hỏi (đổi tên theo sau là xóa).

Phải có cách dễ dàng hơn ..?

  • Paul

Trả lời

12

Đây có phải là những gì bạn đang tìm kiếm?

git merge --strategy=ours master 

chúng ta

này giải quyết bất kỳ số lượng người đứng đầu, nhưng cây kết quả của việc hợp nhất luôn là của người đứng đầu chi nhánh hiện nay là, phớt lờ một cách hiệu quả tất cả thay đổi từ các ngành khác. Nó có nghĩa là để được sử dụng để thay thế lịch sử phát triển cũ của các chi nhánh phụ.

Điều này có vẻ là những gì bạn đang yêu cầu - nó tạo một cam kết hợp nhất không thực sự giới thiệu bất kỳ thay đổi nào.

Nhưng bạn có thực sự muốn làm điều này không? Có một số lý do bạn không thể chỉ có các chi nhánh thực sự phân kỳ (không có sự hợp nhất xảy ra) sau đó hợp nhất sau?

+2

P.S. Tôi thề đây là lần thứ ba tôi đề cập đến '--strategy = ours' trong tuần trước. Tôi tự hỏi tại sao tất cả mọi người đột nhiên cần phải vứt bỏ lịch sử ... – Cascabel

+0

Tôi đang thay đổi một tệp cấu hình cơ sở dữ liệu trên nhánh, ngay sau điểm chi nhánh và không muốn hợp nhất lại thành thạo. Sau đó sửa lỗi trên các chi nhánh mặc dù, tôi muốn hợp nhất trở lại để làm chủ. Điều này sẽ cho phép điều đó, mà không cần anh đào chọn sửa chữa cam kết riêng lẻ. –

+0

Trong khi thực hiện ở trên, nó xảy ra với tôi rằng thông tin cơ sở dữ liệu này thực sự thuộc về các biến môi trường, như trong ứng dụng Mười hai yếu tố. –

0

Paul, git xử lý đổi tên, sau đó xóa dễ dàng (tương đối so với svn). Nó theo dõi nội dung không phải tên tệp. Trong svn điều này sẽ gây đau đớn, bạn gặp phải vấn đề gì với git khi làm điều này?

0

jefromi đóng đinh nó. Đây là điều thực tế - http://github.com/jbehave/jbehave-core/blob/master/examples/trader/src/main/java/org/jbehave/examples/trader/TraderStory.java (chơi với các chi nhánh chuyển đổi và nhìn vào dòng 65).

Đây không phải là quá nhiều về 'ném đi lịch sử', nhưng nhiều hơn về việc sử dụng Git để sắp xếp các thay đổi khác nhau từ một cơ sở duy nhất. Để có được folks chấp nhận JBehave (IMO), chúng ta cần làm cho các ví dụ thực sự dễ theo dõi. Trước khi ví dụ 'Trader' này có JBehave vanilla + một biến thể Guice + một biến thể SpringFramework + một biến thể PicoContainer tất cả trong cùng một thư mục nguồn. Bây giờ, bốn nhánh có thể minh họa cho các biểu diễn kinh điển nhất của ví dụ 'Trader'.

+0

Xin lỗi nhưng liên kết bị hỏng –

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