2012-05-02 29 views
12

Thiết lập: 3 git repos - on github, local và on staging server.Xem phân kỳ/cam kết chính xác giữa địa phương và từ xa Git repo

Tôi phát triển cục bộ, đẩy nó vào github và máy chủ dàn dựng.

Tôi không làm việc cũng không cam kết thay đổi trên máy chủ dàn dựng, nhưng tôi phải làm từ rất lâu trước đây. Bởi vì bây giờ tôi nhận được thông báo sau khi tôi làm git status (trên dàn máy chủ):

On branch SOME_BRANCH 
Your branch and 'origin/SOME_BRANCH' have diverged, 
and have 4 and 32 different commit(s) each, respectively. 

Câu hỏi của tôi là:làm thế nào để tôi thấy những chính xác cam kết mà không phải là ở origin?

+0

LƯU Ý: Tôi đã thử 'git log --graph --pretty --abbrev-commit --oneline', nhưng lịch sử quá dài. Vì vậy, tôi tự hỏi nếu có một cách tốt hơn. – Uzbekjon

+0

có thể trùng lặp của [master branch và 'origin/master' đã phân kỳ, cách 'phân phối' các nhánh '?] (Http://stackoverflow.com/questions/2452226/master-branch-and-origin-master-have- phân nhánh-làm-phân-chi nhánh) – CharlesB

+0

Câu trả lời của bạn cũng như 'git log origin..HEAD' hoạt động rất tốt. Re: câu hỏi trùng lặp, câu hỏi khác muốn undiverge, trong khi tôi muốn biết làm thế nào là nó phân kỳ. – Uzbekjon

Trả lời

16
git rev-list origin..HEAD 

Điều này liệt kê các cam kết trong chi nhánh của bạn (HEAD) không có nguồn gốc.

+2

Sẽ hữu ích khi thêm 'format =% B 'để nhận thông báo cam kết quá – Crisfole

+4

Hmmm, tôi nhận được:' gây tử vong: đối số mơ hồ' origin..HEAD ': bản sửa đổi hoặc đường dẫn không xác định trong cây làm việc. Sử dụng '-' để tách các đường dẫn khỏi các bản sửa đổi, như sau: 'git [ ...] - [ ...]' ' – crmpicco

+0

@crmpicco try 'git log origin..HEAD'. Nếu bạn gặp lỗi, có lẽ điều khiển từ xa của bạn không được gọi là 'origin'. Thử 'git remote -v'. Đầu ra có chứa 'origin' không? – Uzbekjon

2

quát, nếu từ xa của bạn được gọi foo và chi nhánh của bạn là thanh:

git rev-list foo/bar..HEAD 

@charlesb là câu trả lời cho việc tại các chi nhánh tổng thể với xa gọi xuất xứ.

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