2012-02-27 28 views
10

Trong hg tôi có thể sử dụng hg heads để xem tất cả các đầu hiện tại. Tôi vẫn chưa thể tìm thấy một thứ tương đương trong git. git-hg rosetta stone không đưa ra câu trả lời.Git tương đương với người đứng đầu hg/cha mẹ là gì?

Đối với hg parents mà trong hg chỉ đơn giản nói với tổ tiên trực tiếp của một node đá Rosetta chỉ đơn giản là đọc rất vô ích:

git log # you can read all the information you need from there (as long as you already know the answer to the question you're asking) 
+1

tôi tin ' git branch' tương đương với 'hg heads' – JaredPar

+0

@JaredPar Một người đứng đầu trong Mercurial là một cam kết không có con. Điều này không giống như một chi nhánh. Một số chi nhánh có thể có con. Và một số cam kết không có con có thể không phải là người đứng đầu chi nhánh. –

+0

Trông giống như sự cố X-Y. Bạn muốn làm gì trong Git? có thể có một (tốt hơn) tương đương với những gì bạn muốn làm hơn là tương đương với những gì bạn đã làm trong Hg. – manojlds

Trả lời

10

git rev-list HEAD, git rev-list <sha1>git rev-list HEAD -1 -- file là tương đương trong các hình thức khác nhau của hg parents

Đối với vấn đề ĐẦU tách của bạn, làm git checkout <sha1> là có nghĩa là để cam kết kiểm tra, không cho công việc chung. Nếu bạn muốn một chi nhánh ra khỏi một cam kết, bạn phải làm git branch <name> <sha1> hoặc git checkout -b <name> <sha1> và làm việc trên đó.

Do lý do trên, tôi cảm thấy rằng nó không phải là lý tưởng để nói chuyện của tương đương với hg heads trong git như là tất cả các cam kết mà không có một đứa con, nhưng đóng cửa tương đương là git branch

+0

'git rev-list' hầu như không tương đương với' hg parents' (hoặc ít nhất là không có bất kỳ dạng nào được hiển thị trong câu trả lời này); đây là [câu hỏi về nó] (http://stackoverflow.com/questions/26085248/). –

2

Bạn có thể xem tất cả các đầu tên với git branch cho các chi nhánh và git tag cho thẻ. Tôi chắc chắn có một cách ưa thích để hiển thị tất cả các đầu (tức là cam kết lúng túng) nhưng hãy nhớ rằng đây có thể là rác thu thập bởi git theo các thiết lập mặc định.

CẬP NHẬT

Tôi chỉ nhận ra rằng điều này thực sự không liên quan đến các khái niệm về người đứng đầu trong Mercurial. Điều này sẽ thực sự hiển thị cho bạn bất kỳ sửa đổi được đặt tên nào trong kho lưu trữ, có thể có hoặc không hữu ích cho mục đích của bạn.

+2

'git show-ref' sẽ cho bạn thấy tất cả các ref, chi nhánh và thẻ. – Andy

+0

Tôi nghĩ rằng phải có một số khái niệm git tôi đang thiếu. Công cụ này rất đơn giản khi tôi làm điều đó với hg, nhưng với git tôi tiếp tục nhận được đầu tách ra và vào tiểu bang mà tôi không thể đẩy/kéo/bất cứ điều gì. Điều đó có nghĩa là rác có thể được thu thập? Nếu tôi đi đến một bản sửa đổi đã cam kết trước đó và bắt đầu viết mã chống lại nó và cam kết nó sẽ tạo ra một cái đầu không có tên mới đúng không? Làm thế nào trên trái đất để tôi xem những? –

+0

@GeorgeMauer Bạn không nên cam kết như vậy khi bạn ở trong trạng thái đầu bị tách rời. –

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