2012-08-05 72 views
189

Tôi không hiểu rõ mục đích sử dụng Git hoặc Github; Tôi biết nó giúp theo dõi những thay đổi của bạn và nó rất hữu ích cho những người cộng tác với những người khác, nhưng tôi không cộng tác với bất kỳ ai vì vậy tôi không biết liệu điều này có hữu ích cho tôi hay không.Hiểu các khái niệm cơ bản về Git và GitHub

Tôi thường làm việc như một nhà thiết kế web/nhà phát triển nhưng tôi không bao giờ phải cộng tác. Tôi biết trong Git bạn đã tạo, đẩy, cam kết, tạo chi nhánh ... cho mỗi kho lưu trữ nhưng ...

  1. Sự khác nhau giữa Git và GitHub là gì?

  2. Git có lưu mọi kho lưu trữ cục bộ (trong máy của người dùng) và trong GitHub không?

  3. Bạn có thể sử dụng Git mà không có GitHub không? Nếu có, lợi ích của việc sử dụng GitHub là gì?

  4. Git so sánh với hệ thống dự phòng như Máy thời gian như thế nào?

  5. Đây có phải là quy trình thủ công hay không, nói cách khác nếu bạn không cam kết, bạn sẽ không có phiên bản thay đổi mới được thực hiện?

  6. Nếu không cộng tác và bạn đã sử dụng hệ thống sao lưu tại sao bạn sử dụng Git?

+0

có thể giúp ai đó hiểu sự khác biệt: http://pedrorijo.com/blog/git-init – pedrorijo91

Trả lời

236
  1. sự khác biệt giữa Git và GitHub là gì?

    Git là hệ thống kiểm soát phiên bản; nghĩ về nó như một loạt các snapshots (cam kết) của mã của bạn. Bạn thấy một đường dẫn của các ảnh chụp nhanh này, theo thứ tự chúng được tạo ở đâu. Bạn có thể làm cho các chi nhánh để thử nghiệm và quay trở lại ảnh chụp nhanh bạn đã chụp.

    GitHub, là trang web mà bạn có thể xuất bản kho Git của mình và cộng tác với những người khác.

  2. Git có lưu mọi kho lưu trữ cục bộ (trong máy của người dùng) và trong GitHub không?

    Không, chỉ ở địa phương. Bạn có thể quyết định đẩy (xuất bản) một số nhánh trên GitHub.

  3. Bạn có thể sử dụng Git mà không có GitHub không? Nếu có, lợi ích của việc sử dụng GitHub là gì?

    Có, Git chạy cục bộ nếu bạn không sử dụng GitHub. Một thay thế cho việc sử dụng GitHub có thể chạy Git trên các tệp được lưu trữ trên Dropbox, nhưng GitHub là một dịch vụ được sắp xếp hợp lý hơn vì nó được tạo ra đặc biệt cho Git.

  4. Git so sánh với hệ thống dự phòng như Máy thời gian như thế nào?

    Đó là một điều khác, Git cho phép bạn theo dõi các thay đổi và quy trình phát triển của mình. Nếu bạn sử dụng Git với GitHub, nó sẽ trở thành một bản sao lưu hiệu quả. Tuy nhiên thông thường bạn sẽ không đẩy tất cả thời gian vào GitHub, tại thời điểm đó bạn không có một bản sao lưu đầy đủ nếu mọi thứ đi sai. Tôi sử dụng git trong một thư mục được đồng bộ hóa với Dropbox.

  5. Đây có phải là quy trình thủ công hay không, nói cách khác nếu bạn không cam kết, bạn sẽ không có phiên bản thay đổi mới?

    Có, cam kết và đẩy đều là thủ công.

  6. Nếu không cộng tác và bạn đã sử dụng hệ thống sao lưu tại sao bạn sử dụng Git?

    • Nếu bạn gặp phải một lỗi giữa cam kết bạn có thể sử dụng lệnh git diff để thấy sự khác biệt giữa mã hiện tại và làm việc cuối cùng cam kết, giúp bạn xác định vị trí lỗi của bạn.

    • Bạn cũng có thể quay lại cam kết làm việc cuối cùng.

    • Nếu bạn muốn thử thay đổi, nhưng không chắc chắn rằng nó sẽ hoạt động. Bạn tạo một chi nhánh để kiểm tra thay đổi mã của bạn. Nếu nó hoạt động tốt, bạn nhập nó vào nhánh chính. Nếu không, bạn chỉ cần ném nhánh đi và quay trở lại nhánh chính.

    • Bạn đã thực hiện một số gỡ lỗi. Trước khi bạn cam kết, bạn luôn nhìn vào những thay đổi từ lần commit cuối cùng. Bạn thấy câu lệnh in gỡ lỗi mà bạn quên xóa.

Hãy chắc chắn rằng bạn kiểm tra gitimmersion.com.

+5

Phần một trong đoạn cuối thực sự là một điểm tốt. Ngoài ra kiểm tra 'git intersect' cho mục đích này. –

+1

@ H2CO3 Bạn có nghĩa là 'git bisect'? –

+0

@SimonWhitaker Vâng, đó là lỗi đánh máy. –

42
  1. sự khác biệt giữa Git và GitHub là gì?

    Linus Torvalds sẽ giết bạn vì điều này. Git là tên của chương trình quản lý phiên bản mà anh đã viết. GitHub là một trang web có kho mã nguồn được quản lý bởi Git. Do đó, GitHub hoàn toàn không liên quan đến công cụ Git gốc.

  2. Git có lưu mọi kho lưu trữ cục bộ (trong máy của người dùng) và trong GitHub không?

    Nếu bạn thực hiện thay đổi, nó lưu trữ cục bộ. Sau đó, nếu bạn đẩy các cam kết, nó cũng sotres chúng từ xa.

  3. Bạn có thể sử dụng Git mà không có GitHub không? Nếu có, lợi ích của việc sử dụng GitHub là gì?

    Bạn có thể, nhưng tôi chắc chắn bạn không muốn tự thiết lập máy chủ git cho chính mình. Lợi ích của GitHub? Vâng, dễ sử dụng, nhiều người biết điều đó để những người khác có thể tìm thấy mã của bạn và theo dõi/ngã ba để cải tiến.

  4. Git so sánh với hệ thống dự phòng như Máy thời gian như thế nào?

    Git được thiết kế và tối ưu hóa đặc biệt cho mã nguồn.

  5. Đây có phải là quy trình thủ công hay không, nói cách khác nếu bạn không cam kết sẽ không có phiên bản thay đổi mới?

    Chính xác.

  6. Nếu không cộng tác và bạn đã sử dụng hệ thống sao lưu tại sao bạn sử dụng Git?

    Xem # 4.

+5

Thực ra, bạn có thể sử dụng git hoàn toàn cục bộ. Lý do duy nhất, tại sao bạn sử dụng github là xuất bản mã nguồn của bạn. Ví dụ để cộng tác. Nếu bạn không muốn làm điều đó bạn không cần một máy chủ git. –

+0

@ DavoudTaghawi-Nejad có nhưng tôi chắc chắn OP đã đề cập đến 'không có Github' là 'không cụ thể với GitHub'. Tôi cũng tin rằng rõ ràng từ # 2 rằng bạn chỉ có thể sử dụng git cục bộ. –

+4

@ DavoudTaghawi-Nejad Tôi sử dụng github làm bản sao lưu chứ không phải để cộng tác. Nếu có một mã lửa/etc là an toàn. – Thufir

28
  1. Sự khác nhau giữa Git và GitHub là gì?

    Git là hệ thống kiểm soát phiên bản được phân phối. Nó thường chạy ở dòng lệnh của máy cục bộ của bạn. Nó theo dõi các tệp của bạn và sửa đổi các tệp đó trong một "kho lưu trữ" (hoặc "repo"), nhưng chỉ khi bạn yêu cầu nó làm như vậy. (Nói cách khác, bạn quyết định tệp nào cần theo dõi và khi nào cần chụp "ảnh chụp" của bất kỳ sửa đổi nào.)

    Ngược lại, GitHub là trang web cho phép bạn xuất bản kho Git trực tuyến, điều này có thể hữu ích cho nhiều lý do (xem # 3).

  2. Git có lưu mọi kho lưu trữ cục bộ (trong máy của người dùng) và trong GitHub không?

    Git được gọi là "distributed" (rather than "centralized") version control system vì bạn có thể chạy cục bộ và ngắt kết nối Internet, sau đó "đẩy" các thay đổi của bạn vào hệ thống từ xa (chẳng hạn như GitHub) bất cứ khi nào bạn muốn. Do đó, thay đổi repo chỉ xuất hiện trên GitHub khi bạn thủ công yêu cầu Git đẩy những thay đổi đó.

  3. Bạn có thể sử dụng Git mà không có GitHub không? Nếu có, lợi ích của việc sử dụng GitHub là gì?

    Có, bạn có thể sử dụng Git mà không cần GitHub. Git là chương trình "workhorse" thực sự theo dõi các thay đổi của bạn, trong khi GitHub chỉ đơn giản là lưu trữ các kho lưu trữ của bạn (và cung cấp chức năng bổ sung không có sẵn trong Git). Dưới đây là một số lợi ích của việc sử dụng GitHub:

    • Nó cung cấp bản sao lưu các tệp của bạn.
    • Nó cung cấp cho bạn giao diện trực quan để điều hướng các bản repo của bạn.
    • Nó mang lại cho người khác một cách để điều hướng repo của bạn.
    • Điều này làm cho việc cộng tác repo trở nên dễ dàng (ví dụ: nhiều người đóng góp cho cùng một dự án).
    • Nó cung cấp hệ thống theo dõi vấn đề nhẹ.
  4. Git so sánh với hệ thống dự phòng như Máy thời gian như thế nào?

    Git không sao lưu tập tin của bạn, mặc dù nó mang đến cho bạn nhiều hơn nữa hạt kiểm soát hơn một hệ thống sao lưu truyền thống hơn những gì và khi bạn sao lưu. Cụ thể, bạn "cam kết" mỗi lần bạn muốn chụp nhanh các thay đổi và cam kết đó bao gồm cả mô tả về các thay đổi của bạn và chi tiết từng dòng của những thay đổi đó. Điều này là tối ưu cho mã nguồn vì bạn có thể dễ dàng xem lịch sử thay đổi cho bất kỳ tệp đã cho nào ở cấp độ từng dòng.

  5. Đây có phải là quy trình thủ công hay không, nói cách khác nếu bạn không cam kết, bạn sẽ không có phiên bản thay đổi mới?

    Vâng, đây là quy trình thủ công.

  6. Nếu không cộng tác và bạn đã sử dụng hệ thống sao lưu tại sao bạn sử dụng Git?

    • Git sử dụng một mạnh mẽ branching system cho phép bạn làm việc trên nhiều, đường không phụ thuộc vào sự phát triển đồng thời và sau đó hợp nhất những chi nhánh với nhau khi cần thiết.
    • Git cho phép bạn xem sự khác biệt từng dòng giữa các phiên bản tệp khác nhau, điều này giúp khắc phục sự cố dễ dàng hơn.
    • Git buộc bạn mô tả từng cam kết, điều này giúp bạn dễ dàng theo dõi một phiên bản cụ thể trước đó của một tệp nhất định (và có khả năng hoàn nguyên về phiên bản trước đó).
    • Nếu bạn cần trợ giúp về mã của mình, hãy nhờ Git theo dõi và lưu trữ trên GitHub giúp người khác xem mã của bạn dễ dàng hơn nhiều.

Đối với việc bắt đầu với Git, tôi khuyên bạn nên cuốn sách trực tuyến Pro Git cũng như GitRef như một hướng dẫn tham khảo tiện dụng. Để bắt đầu với GitHub, tôi thích số GitHub's Bootcamp và số GitHub Guides của họ. Cuối cùng, tôi đã tạo một số videos series ngắn để giới thiệu Git và GitHub cho người mới bắt đầu.

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