2012-09-06 45 views
5

Tôi muốn đầu ra của git log của một kho git nhưng tôi không muốn phải sao chép toàn bộ kho lưu trữ.Run 'git log` trên một chi nhánh từ xa

I.e. Tôi muốn một cái gì đó ngữ nghĩa như sau

git log [email protected]:username/reponame.git

Nếu có một cách để làm điều này, tôi cũng sẽ muốn giống nhau cho git whatchanged

Nếu github cung cấp một giải pháp đơn giản cho điều này tôi sẽ sẵn sàng hạn chế bản thân mình để chỉ kho lưu trữ git được lưu trữ trên github.

+0

tôi nghĩ rằng sẽ đi ngược lại git được một * phân * vcs, không có? – jeremyharris

+0

có thể trùng lặp của [Hiển thị nhật ký git cho phạm vi cam kết trên máy chủ từ xa?] (Http://stackoverflow.com/questions/5958905/show-git-logs-for-range-of-commits-on-remote-server) – jeremyharris

Trả lời

0

Tôi nghĩ rằng giải pháp của bạn là chỉ cần nhìn vào lịch sử trên trang web github.com. Nếu bạn cần git log để làm việc từ dòng lệnh thì bạn cần bản sao của riêng bạn của kho lưu trữ. Về lý thuyết, bạn có thể viết một công cụ dòng lệnh để lấy thông tin cam kết từ API của github, nhưng điều này sẽ bị giới hạn chỉ hiển thị thông điệp cam kết/siêu dữ liệu và không khác biệt thực tế.

3

Bạn có thể làm một bản sao cạn, trong đó sẽ giới hạn số lượng những thứ bạn sẽ phải lấy nếu bạn chỉ cần lịch sử gần đây:

git clone --depth 100 ... 
0

Cách Unix là phải có một tài khoản shell:

ssh [email protected] cd reponame.git '&&' git log 

ssh [email protected] cd reponame.git '&&' git whatchanged 

phương pháp này có lợi thế là chạy bất cứ điều gì bạn muốn trên th e máy chủ từ xa. Tôi nghi ngờ điều này sẽ làm việc với github mặc dù.

3

Bạn nên tìm nhánh từ xa rồi tương tác với nó. git fetch sẽ kéo nhánh từ xa vào FETCH_HEAD của kho lưu trữ cục bộ của bạn, chứ không phải thư mục làm việc của bạn.

git log FETCH_HEAD --decorate=full sẽ cho bạn biết vị trí HEAD của bạn so với refs/origin/HEAD, là nhánh từ xa.

git whatchanged FETCH_HEAD --decorate=full là tương tự như trên, nhưng cũng cho thấy các tập tin đã thay đổi.

git diff HEAD FETCH_HEAD diffs giữa TRỤ của kho lưu trữ của bạn và ĐẦU chi nhánh từ xa mà bạn vừa lấy

git diff --stat HEAD FETCH_HEAD một bản xem trước bản tóm tắt các thay đổi, cũng giống như bạn sẽ thấy trong việc hợp nhất và ở dưới cùng của một git pull.

Lưu ý rằng nếu bạn muốn kéo trong những thay đổi vời, chỉ cần làm một git merge FETCH_HEAD.(Khi bạn git pull bạn là chủ yếu chỉ làm một lấy sau đó một merge)

+1

Câu trả lời này là vô dụng wrg của câu hỏi thực tế hỏi, nhưng tôi cho nó một upvote anyway vì nó giải quyết được vấn đề tôi muốn giải quyết khi duckduckgoing cho "git log remote branch" :-) – tobixen

1

Tôi đã tìm thấy hai cách để làm điều này với GitHub:

  1. Sử dụng API web để truy vấn các thông tin đăng nhập (không tầm thường nhưng doable)
  2. Sử dụng "svn log", kể từ GitHub tại phần giả lập một máy chủ sVN trên kho Git
Các vấn đề liên quan