2015-03-11 18 views
8

Làm cách nào để xóa các cam kết, chờ được đẩy đến điều khiển từ xa?SourceTree - xóa các lần chờ đợi

2 pushes waiting

tình hình của tôi là, rằng những cam kết đã xếp hàng (thay đổi) được đã đẩy (thêm dưới đây) và bây giờ là máy chủ từ chối chấp nhận những người như họ đang ở phía sau các HEAD.

Tôi đã thử đặt lại cam kết khác, nhưng khi tôi quay lại HEAD, hãy đẩy lại xuất hiện lại.

Nhấp Repository> Refresh Status từ xa sẽ không giúp đỡ, nó thực sự bổ sung thứ 2 chờ đợi push :)

PS: Tôi xin lỗi vì thuật ngữ của tôi, tôi khá mới mẻ với git.

.

Cập nhật 1

Vấn đề bắt đầu khi tôi được commiting feature2 để làm chủ chi nhánh. Tôi không có quyền cam kết ở đó nên nó bị kẹt. Sau đó, tôi cam kết một lần nữa đến chi nhánh cá nhân của tôi, đó là OK. Sau đó, tôi có một cam kết chờ đợi, không bao giờ được đẩy, ngay cả khi tôi chọn đúng (cá nhân) chi nhánh khi tôi bấm Push.

enter image description here

+0

Ảnh chụp màn hình đã thêm – teejay

+0

Nó không phải là lỗi, nó chỉ cảnh báo cho đến khi tệp được chuyển đến kho Git –

Trả lời

17

Git cam kết tạo biểu đồ cam kết. Chi nhánh chỉ là con trỏ được đặt tên để cam kết trong biểu đồ đó.

Cho rằng, câu hỏi của bạn có thể được diễn tả lại như

địa phương chủ chi nhánh của tôi là trỏ đến một khác nhau cam kết hơn xa chủ chi nhánh. Làm cách nào để đặt điểm chi nhánh chính của mình thành chi nhánh chính cho cùng một cam kết với chi nhánh chính từ xa chính?

Có hai cách để thực hiện việc này. Di chuyển nhánh từ xa (git push) hoặc di chuyển nhánh địa phương (git reset). Như bạn đã nói, bạn không thể đẩy đến chi nhánh chính chính, vì vậy các tùy chọn 1 nằm ngoài bảng, tùy chọn này sẽ rời khỏi tùy chọn 2.

Lưu ý rằng reset hoạt động trên các chi nhánh hiện thanh toán vì vậy đầu tiên bạn sẽ muốn chắc chắn rằng bạn hiện đang ở trên chủ chi nhánh và sau đó chuyển sang chi nhánh với cùng cam kết như điều khiển từ xa chủ chi nhánh.

git checkout master    <--- make sure you're on the master branch 
git reset --hard origin/master <--- put your master branch on the same commit as origin/master 

Bây giờ chủnguồn gốc/master đang ở trên cùng một cam kết, không nên có cam kết để đẩy.


  1. reset hoạt động trên các HEAD hiện tại, nhưng vì lợi ích của lời giải thích này nó dễ dàng hơn để nghĩ về nó như hoạt động trên các chi nhánh. Để biết thêm thông tin, hãy xem câu hỏi này: What is HEAD in Git? .
+0

Đã hoạt động! Đây là srsly một ma thuật tối đối với tôi, hoàn toàn :) Rất cám ơn – teejay

+0

cho những người khác> git nói gì đó về nhánh cá nhân và nhánh chủ của tôi khác nhau> đề nghị sử dụng "git pull" mà đã hợp nhất> sau đó tôi làm theo các bước trên> tất cả OK bây giờ – teejay

+0

@teejay Phần nào là ma thuật đen tối? Tôi có thể cập nhật câu trả lời cho đến khi nó chỉ là nhàm chán 9 đến 5 phép thuật. – R0MANARMY

2

Bạn đã thử bằng cách thực hiện: git reset --hard HEAD~1? Bằng cách này, bạn sẽ có đầu một lần nữa trên repo địa phương của bạn. Nếu không, tôi đã nhìn thấy một trang hài hước có thể hữu ích: http://ibrokegit.com/

Hầu hết các lần, điều này cần được giải quyết bằng cách sử dụng dòng lệnh thay vì GUI (trong trường hợp này là SourceTree).

Hy vọng điều đó sẽ hữu ích!

+1

Vâng, tôi đã thử trước đó, chưa được giải quyết vấn đề .. buut Tôi đã rất tốt khi tôi nhìn vào trang web đó, vì vậy 1 nếu u hỏi tôi: o) – teejay

+0

Cho đồ thị cam kết OP thêm vào câu hỏi, đây không phải là câu trả lời đúng. Nó chỉ đưa bạn trở lại một cam kết. – R0MANARMY

+0

Biểu đồ đã được thêm vào sau đó. – facundofarias

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