2012-09-06 42 views
11

Tôi đã chạy vào một vấn đề với nguồn gốc của tôi/chi nhánh là không đồng bộ với chi nhánh địa phương của tôi, xem dưới đâyEGit trên Eclipse: Làm thế nào để git push --force?

My commit history

Khi tôi cố gắng đẩy từ địa phương "dàn dựng" chi nhánh của tôi về nguồn gốc/nhánh phân nhánh tôi nhận được lỗi "bị từ chối - không chuyển tiếp nhanh".

Tôi sử dụng Eclipse với mô-đun EGit trên PC cửa sổ.

Từ another post here Tôi thấy rằng tôi có thể giải quyết vấn đề của mình bằng cách "dàn dựng nguồn gốc git push - force" để vượt quá nhánh gốc/dàn nhánh với chi nhánh địa phương của tôi.

Tuy nhiên, tôi không thấy tùy chọn đó với EGit và tôi không thấy cách mở bảng điều khiển trong EGit để thực hiện việc này?

Có ai biết tôi có thể làm điều này trong EGit không?

OK - đã khắc phục sự cố của riêng tôi. Có vẻ như tôi đã gặp sự cố với các Cam kết chưa được đẩy trở lại nguồn gốc/dàn dựng. Đã tìm thấy an overview here bằng cách sử dụng "git reset XXX: without --hard" để đặt lại điểm đánh dấu chi nhánh, nhưng giữ các thay đổi cục bộ cho các lần giới thiệu sau này.

Cảm ơn, Jason

Trả lời

0

Nếu bạn làm một push lực, bạn sẽ mất tất cả mọi thứ thêm vào origin/staging sau khi sửa chữa Vị trí thiếu: string trong tiêu đề, và bạn sẽ phá vỡ các chi nhánh tất cả mọi người khác. Tôi không nghĩ đó là những gì bạn muốn. Bạn có thể muốn làm một kéo đầu tiên, sau đó đẩy sẽ làm việc tốt.

+0

Cần lưu ý rằng kéo sẽ cố gắng tự động hợp nhất, và nếu nó thành công thì tất cả mọi thứ sẽ hoạt động tốt. Nếu không, người dùng phải hợp nhất chính mình, cam kết và sau đó nó sẽ là ok. – eis

+0

Đã thử cả Kéo và Hợp nhất, cả hai đều không thành công. – Jason

+1

Hợp nhất thông báo lỗi: Hợp nhất các sửa đổi 4092d67bbfda43148cc078674f2f2738720caade, 5df2879b3ecf2b7d0e1d0209a1f7862ce6f5aa9b với cơ sở 8643195cd4a8391497469a92d627ef5cf8480e13 sử dụng giải pháp chiến lược dẫn đến: Không thành công. – Jason

5

Bạn có chắc chắn muốn ghi đè chi nhánh từ xa và mất tất cả các cam kết đó không?

Nếu có cam kết về chi nhánh từ xa mà không phải là ở chi nhánh địa phương của bạn, bạn nên kết hợp chúng vào chi nhánh địa phương của bạn trước khi đẩy

Ví dụ, trong khi trên địa phương staging chi nhánh của bạn:

git merge origin/staging 

Tuy nhiên, nếu bạn chắc chắn, thì tôi khuyên bạn nên chọn tùy chọn "Bắt buộc cập nhật" trên push refspec.

Đó là một chút phức tạp để có được, nhưng các hướng dẫn sử dụng EGit giải thích nó khi thảo luận Pushing to other Repositories, và phần cụ thể mà đề cập đến "Force Update" lựa chọn là ở phần trên Push Ref Specifications

Sửa 0: Đối với việc hợp nhất không thành công của bạn, tôi chưa gặp phải sự hợp nhất không thành công thay vì dẫn đến xung đột và có vẻ như là một số known issue

+0

Tôi đồng ý, việc kéo và hợp nhất là các tùy chọn tốt hơn, nhưng như tôi đã nói ở trên, chúng không thành công? – Jason

21

Tôi vừa gặp một vấn đề tương tự và dưới đây là những gì tôi đã làm :

  1. Team -> Push Chi nhánh ...
  2. Force ghi đè các chi nhánh trên xa nếu nó tồn tại và đã tách ra
Các vấn đề liên quan