2012-04-17 28 views
41

Tôi đang sử dụng các công cụ lưu lượng git và tôi đã gặp phải một chút vấn đề. Chi nhánh git của tôi đã phân kỳ. Tôi đã đọc master branch and 'origin/master' have diverged, how to 'undiverge' branches'? và đã cố gắng làm theo các bước, cả hai cố gắng hợp nhất và để rebase kho lưu trữ địa phương của tôi.chi nhánh luồng git đã phân tách

Làm cách nào để thoát khỏi điều này? Tôi đang thực hiện với các tính năng dòng chảy git và tôi chỉ muốn có được những thay đổi của tôi lên đến từ xa. Cảm ơn!

Trả lời

86

Điều xảy ra ở đây là điều khiển từ xa đã nhận được cập nhật và luồng git yêu cầu developorigin/develop để có cùng cam kết trước khi hợp nhất lại tính năng. Điều này là để ngăn chặn các xung đột xấu khi xuất bản chi nhánh.

Để giải quyết điều này, bạn cần phải:

  1. đồng bộ hóa địa phương develop với origin: checkout develop, và kéo từ origin để develop (git checkout develop && git pull origin)

  2. rebase tính năng của bạn trên develop với git flow feature rebase showFindLogs . Bạn có thể có những xung đột ở đây nếu bạn không may mắn

  3. kiểm tra rằng nó không phá vỡ bất cứ điều gì

  4. git flow feature finish showFindLogs

+3

Cảm ơn bạn rất nhiều! –

+2

Sẽ không 'git checkout phát triển && git pull origin' tạo một thông điệp cam kết" Phát triển nguồn gốc/phát triển thành phát triển "? Sẽ không 'git checkout phát triển && git rebase origin' (hay còn gọi là' git pull --rebase origin') tốt hơn trong tình huống này? – PeterB

+0

@PeterB: có thực sự, nếu 'phát triển' và 'nguồn gốc/phát triển' đã phân kỳ, nhưng nó không phải là một tình huống phổ biến – CharlesB

0

Bạn có thể lấy từ $ ORIGIN trước khi tính năng kết thúc bằng lệnh này:

git flow feature finish -F <name> 

(docs)

3

Hãy chắc chắn rằng chi nhánh develop của bạn không phải là đằng sau nguồn gốc, có thể bạn cần phải thực hiện

git checkout develop

git pull

git checkout release/x.x.x

Và tiếp tục quá trình phát hành

0

Đối với bất cứ ai googling lỗi này, và sử dụng Hub-Flow - chỉ cần làm:

git hf update 
0

Đối với giải quyết rằng vấn đề bạn có thể sử dụng thực hiện của tôi của dòng chảy git, dựa trên giải pháp @ childno͡.de.

git flow feature/hotfix/release/bugfix -e finish <name> 

Để cài đặt dòng git thực hiện trong giao diện điều khiển:

git clone https://github.com/wyhasany/gitflow-avh/;cd gitflow-avh/;git checkout feature/force_merge;git pull;sudo make install