2012-11-21 47 views
8

ngắnThực hiện một git branch bình đẳng để làm chủ phiên bản một lần nữa

cách dễ nhất để tạo ra một ngành bằng master lại là gì, loại bỏ bất kỳ sự khác biệt? Cho đến bây giờ, tôi chỉ đơn giản sử dụng git branch -D wip, tiếp theo là git checkout -b wip, nhưng điều đó có vẻ hơi ngớ ngẩn.

Động lực

tôi thường có một chi nhánh wip cùng với chi nhánh master tôi, cho 'công việc đang tiến'. Đôi khi công việc trên một chi nhánh như vậy bị 'bỏ lại phía sau' và khi tôi khám phá lại nó, tôi thấy tôi không còn muốn nó nữa. Tái phát hiện này thường xảy ra khi tôi muốn sử dụng chi nhánh để lưu trữ một bộ mới 'công việc đang tiến hành' và tôi thấy tôi chỉ muốn loại bỏ bất kỳ sự khác biệt nào với master, do đó, 'công việc mới đang tiến hành' phù hợp trên đầu trang. Tìm ra sự khác biệt không phải là giá trị rắc rối: các giải pháp mô tả ở trên hoạt động tốt cho tôi. Bất kỳ giải pháp nào tốt hơn để giải quyết trường hợp sử dụng này?

Trả lời

7

Nếu bạn thực sự muốn thổi đi những chi nhánh trước với tên đó, và tạo một hình mới bạn chỉ có thể sử dụng:

git checkout -B wip master 

Sử dụng phiên bản vốn chứ không phải -b sẽ gây ra git để chuyển sang tên và đặt lại nó thành điểm bắt đầu mới có tên là đối số cuối cùng. Nếu bạn hiện đang ở điểm xuất phát mong muốn, bạn có thể bỏ qua đối số cuối cùng (master tại đây), nó sẽ mặc định sử dụng HEAD.

10

thử một này trong chi nhánh của bạn:

git reset --hard master 

này sẽ làm cho chi nhánh của bạn giống hệt nhau để làm chủ, loại bỏ tất cả các cam kết bạn có thể đã thực hiện, và loại bỏ tất cả các tập tin trong khu vực dàn.

+0

Khi trường hợp sử dụng này xuất hiện, tôi thường có công việc không được cam kết trong tiến trình. Tại thời điểm đó tôi thường không thể kiểm tra chi nhánh 'wip', vì điều đó dẫn đến lỗi': Các thay đổi cục bộ của bạn đối với các tệp sau sẽ bị ghi đè bằng cách kiểm tra: '. Tất nhiên tôi có thể cam kết công việc của tôi trên 'master', sau đó checkout' wip', sau đó 'git reset --hard master', sau đó checkout' master' và 'reset --hard HEAD ^', nhưng nó không ngắn hơn nhiều so với phá hủy các chi nhánh và tạo ra một cái mới. – Confusion

+0

Tại sao bạn làm chủ nếu bạn đang làm việc trên wip? – Intrepidd

+1

Bạn có thể tránh phải cam kết trong những tình huống đó bằng cách sử dụng 'git stash' để lưu các thay đổi của bạn, sau đó' git stash pop' để khôi phục chúng. – jszakmeister

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