2011-09-04 65 views

Trả lời

223

Các trang người đàn ông cho thanh toán: http://git-scm.com/docs/git-checkout

Các man page của bản sao: http://git-scm.com/docs/git-clone

Nói tóm lại, bản sao là cho lấy kho bạn không có, kiểm tra là để chuyển đổi giữa các chi nhánh trong một kho lưu trữ mà bạn đã có.

Lưu ý: đối với những người có nền SVN/CVS và mới đối với Git, tương đương git clone trong SVN/CVS là checkout. Cùng một từ ngữ của các thuật ngữ khác nhau thường gây nhầm lẫn.

+33

'checkout' cũng có thể được sử dụng cho những thứ khác, như ghi đè tệp của bạn trong bản sao làm việc của bạn bằng phiên bản của tệp đó từ một bản sửa đổi khác. – svick

+5

và khi nào bạn sử dụng "kéo" và "thanh toán"? – Kokodoko

+18

kéo là tìm nạp cộng với việc hợp nhất, thanh toán là một hoạt động cục bộ chỉ hoạt động trên dữ liệu đã được tìm nạp. Vì vậy, nó không giống như thanh toán svn ở tất cả. –

105

git clone là tìm nạp kho của bạn từ máy chủ git từ xa.

git checkout là để kiểm tra trạng thái mong muốn của kho lưu trữ của bạn (như các chi nhánh hoặc các tệp cụ thể).

Ví dụ: bạn hiện đang ở nhánh chính và bạn muốn chuyển sang nhánh phát triển.

git checkout develop_branch 

Ví dụ: bạn muốn kiểm đến một tình trạng cụ thể của một tập tin cụ thể

git checkout commit_point_A -- <filename> 

Đây là một good reference cho bạn để tìm hiểu Git, cho phép bạn hiểu dễ dàng hơn nhiều.

+17

"từ máy chủ git từ xa" - không cần thiết cho máy chủ ở xa. 'git clone' cũng sẽ làm việc với repos cục bộ. – SET

+1

Cảm ơn các liên kết đến một tham chiếu trực quan để git! –

+0

@Kit Ho: Liên kết là một tài liệu tham khảo, nhưng nó không giúp ích nhiều cho ai đó với những câu hỏi cơ bản về git như người ở trên. Như bản thân bài viết nói, "Một khi bạn biết một chút về cách git hoạt động, trang web này có thể củng cố sự hiểu biết của bạn" –

10

Một điều cần lưu ý là thiếu bất kỳ "Bản sao chép" nào trong git. Đó là vì bạn đã có đầy đủ bản sao trong repo địa phương của bạn - repo địa phương của bạn là clone của repo ngược dòng đã chọn của bạn. Vì vậy, bạn có hiệu quả một cá nhân checkout của mọi thứ, mà không đặt một số 'khóa' vào các tệp đó trong repo tham chiếu.

Git cung cấp giá trị băm SHA1 làm cơ chế để xác minh rằng bản sao bạn có của cây/thư mục/cam kết/repo giống hệt như được sử dụng bởi bất kỳ ai có thể khai báo mọi thứ dưới dạng "Chính" bên trong hệ thống phân cấp tin cậy. Điều này tránh tất cả những 'khóa' đó gây ra hầu hết các hệ thống SCM bị nghẹt thở (với các vấn đề thông thường của các bản sao riêng tư, sự hợp nhất lớn, và không kiểm soát thực sự hoặc quản lý mã nguồn ;-)!

+4

Câu hỏi không đề cập đến ổ khóa và nó sẽ được giả định theo mặc định trong những ngày này mà một người không quen thuộc với điều này khái niệm nên những khác biệt này từ các VCS cũ chỉ nên được giải thích nếu được hỏi một cách rõ ràng. – wRAR

2

Đơn giản chỉ cần git checkout có 2 sử dụng

  1. Chuyển đổi giữa các chi nhánh địa phương hiện có như git checkout <existing_local_branch_name>
  2. Tạo một chi nhánh mới từ chi nhánh hiện nay sử dụng lá cờ -b. Giả sử nếu bạn đang ở chi nhánh tổng thể sau đó git checkout -b <new_feature_branch_name> sẽ tạo ra một chi nhánh mới với các nội dung của tổng thể và chuyển sang chi nhánh mới được tạo ra

Bạn có thể tìm thêm nhiều lựa chọn tại official site

+0

Tốt. Tùy chọn '-b' này là tuyệt vời, nó tạo ra một nhánh địa phương mới và kiểm tra nó cùng một lúc trong một lệnh duy nhất. Đã yêu nó! – RBT

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