2013-02-03 27 views
6

Tôi có repo cục bộ và repo từ xa trên github. Vì lý do kinh doanh, chúng không đồng bộ. Tôi đã làm rất nhiều công việc trên địa phương mà tôi đang giữ, và bây giờ tôi tự thêm bất cứ điều gì mới vào điều khiển từ xa, đến địa phương của tôi. Không có chi nhánh.git diff - chỉ hiển thị thông tin mới trên điều khiển từ xa

Khi tôi sử dụng lệnh,

git diff --color master..origin/master 

tôi nhận được kết quả tốt, hiển thị những gì đã thay đổi .... những gì tôi đã thêm vào repo địa phương được đánh dấu bằng một - dấu hiệu, và được thể hiện trong màu đỏ; trong khi những gì trên điều khiển từ xa được hiển thị bằng màu xanh lục với dấu +.

Có cách nào để hiển thị chỉ những tính năng mới trên điều khiển từ xa chứ không phải trên máy cục bộ? Tức là, hiển thị cho tôi bất kỳ tệp mới nào trên điều khiển từ xa và hiển thị cho tôi bất kỳ dòng mới hoặc sửa đổi nào trong các tệp trên điều khiển từ xa (hiển thị cho tôi tất cả màu xanh lá cây) '

cảm ơn.

+0

là nó đơn giản như: 'git diff --color master..origin/master | grep + ' –

+0

Cảm ơn bạn đã trả lời. Điều này không hoạt động nếu có nội dung của một số tệp được theo dõi. Bất kỳ cách nào khác? P.S. Tôi mới đến git và đến nhà ga. :-) – Darby

+1

'grep^+' sau đó? –

Trả lời

1

Bạn có thể diff với tổ tiên chung:

git diff `git merge-base master origin/master` origin/master 

Hoặc với bạn trước lấy:

git diff origin/[email protected]{1} origin/master 
7

Tôi tin rằng bạn có thể đặt 3 dấu chấm giữa hai chi nhánh tại lệnh và sau đó nó chỉ những gì mới trong lần thứ hai liên quan đến cái đầu tiên, tức là

git diff master...feature 

để xem có gì mới về tính năng và

git diff feature...master 

để xem tính năng mới trên máy chủ. Trong trường hợp tính năng của bạn có thể là origin/master và điều đó sẽ hoạt động tốt.

+2

Phải: ba dấu chấm cho 'git diff', so với hai dấu chấm cho' git log'! http://stackoverflow.com/a/14426939/6309 và http://stackoverflow.com/a/7256391/6309 – VonC

0

Hãy thử xem git help rev-list. Các tùy chọn mà bạn có thể tìm cho là --right-only, như vậy có lẽ điều này giúp bạn những gì bạn muốn:

git diff --color --right-only master..origin/master 
Các vấn đề liên quan