2012-09-05 44 views
7

Hãy nói rằng trong kho lưu trữ Git của chúng tôi, chúng tôi đã làm việc trên chi nhánh master trong một thời gian. Sau đó, hầu hết chúng tôi bắt đầu làm việc trên chi nhánh coolfeature, trong khi một vài nhà phát triển tiếp tục theo số master.Làm thế nào để xử lý gián đoạn Git?

Bây giờ, các nhà phát triển đã làm việc trên master đã mất hứng thú và những gì họ đã phát triển kể từ khi chúng tôi chia nhỏ không phải là điều rất quan trọng. Nhưng chúng tôi muốn các chi nhánh phát triển chính được gọi là master một lần nữa. Về mặt khái niệm, về cơ bản chúng tôi muốn cây trông như thế này:

*--master--X  ----master 
\    /
    --coolfeature-- 

Cách dễ nhất để đạt được điều này là gì? Chúng tôi thực sự không muốn thử và hợp nhất coolfeature, và chúng tôi đang hạnh phúc cho các cam kết đánh dấu X là hoàn toàn vô nghĩa.

+0

Để có hiệu quả ma các tính năng của nage theo cách này, nó sẽ là khôn ngoan để sử dụng một quy trình làm việc cho phép điều này. Chi nhánh cho mỗi đối tượng địa lý là những gì bạn nên xem. Google "Chi nhánh cho mỗi đối tượng địa lý" và bạn nên truy cập bài viết chi tiết về cách quản lý quy trình làm việc như thế. –

Trả lời

3

Thực hiện lực đẩy với nhánh chính mới.

git push -f origin master 

Những người khác lấy mã, và thực hiện một thiết lập lại

git fetch origin master 
git reset --hard origin/master 
+0

Và làm thế nào để đổi tên 'coolfeature' thành 'master'? 'git branch -d master; git branch -m coolfeature master '? –

+1

Nó được "đổi tên" bằng thao tác 'push': cam kết được chỉ định bởi nhánh" master "trong kho gốc được đặt là một trong HEAD của repo nơi' push' được thực hiện. – fork0

2

Con đường tôi sẽ làm điều này và tránh làm một push buộc:

  1. tạo thẻ cho các cam kết X mà bạn không quan tâm. (Bạn sẽ thấy lý do tại sao trong một phút.
  2. Thực hiện một cam kết git revert của tất cả các cam kết trên nhánh chính kể từ khi bạn phân nhánh ra khỏi coolfeature. t viết lại lịch sử, vì vậy kho không ai bị phá vỡ nếu họ đã không nhận được ghi nhớ.
  3. Merge coolfeature lên thạc sĩ.

điểm về gắn thẻ X là để đánh dấu điểm trước khi bạn đã làm tất cả những thay đổi. Thẻ có giá rẻ, và tại một thời điểm nào đó bạn có thể muốn biết điểm mà tại đó bạn đã sao lưu các cam kết và thực hiện một thay đổi.

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