Hiểu những điều cơ bản của Git và GitHub [đã đóng]


201

Tôi không hiểu đầy đủ mục đích của việc sử dụng Git hoặc Github; Tôi biết nó giúp theo dõi các thay đổi của bạn và nó hữu ích cho những người cộng tác với 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 không.

Tôi thường làm việc như một nhà thiết kế / phát triển web 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 các nhánh, v.v. cho mọi kho lưu trữ nhưng ...

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

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

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

  4. Làm thế nào để Git so sánh với một hệ thống sao lưu như Time Machine?

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

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


có lẽ nó giúp ai đó hiểu được sự khác biệt: pedrorijo.com/blog/git-init
pedrorijo91

Câu trả lời:


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

    Git là một hệ thống kiểm soát phiên bản; nghĩ về nó như một loạt các ảnh chụp nhanh (cam kết) 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ể tạo các nhánh để thử nghiệm và quay lại các ảnh chụp nhanh bạn đã chụp.

    GitHub, là một trang web nơi 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ỉ là địa phương. Bạn có thể quyết định đẩy (xuất bản) một số chi nhánh trên GitHub.

  3. Bạn có thể sử dụng Git mà không có GitHub? 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 cách khác để sử dụng GitHub có thể là 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ụ hợp lý hơn vì nó được tạo ra đặc biệt cho Git.

  4. Làm thế nào để Git so sánh với một hệ thống sao lưu như Time Machine?

    Đó là một điều khác biệt, Git cho phép bạn theo dõi các thay đổi và quá trình phát triển của bạn. 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 toàn bộ thời gian tới GitHub, tại thời điểm đó bạn không có bản sao lưu đầy đủ nếu mọi thứ không ổn. 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 nói cách khác là nếu bạn không cam kết bạn sẽ không có phiên bản mới của những thay đổi được thực hiện?

    Có, cam kết và đẩy đều bằng tay.

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

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

    • Bạn cũng có thể quay trở 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 nhánh để kiểm tra thay đổi mã của bạn. Nếu nó hoạt động tốt, bạn hợp nhất nó vào nhánh chính. Nếu không, bạn chỉ cần ném nhánh cây đi và quay trở lại nhánh chính.

    • Bạn đã làm một số gỡ lỗi. Trước khi bạn cam kết, bạn luôn luôn nhìn vào những thay đổi từ lần cam kết 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 intersectcho mục đích này.

2
@ H2CO3 Ý bạn là git bisectsao?
Simon Whitaker

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

47
  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 ấy đã viết. GitHub là một trang web có kho lưu trữ mã nguồn do Git quản lý. Do đó, GitHub hoàn toàn không liên quan đến công cụ Git gốc.

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

    Nếu bạn cam kết thay đổi, nó lưu trữ cục bộ. Sau đó, nếu bạn đẩy các cam kết, nó cũng sẽ điều khiển chúng từ xa.

  3. Bạn có thể sử dụng Git mà không có GitHub? 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 rằng bạn không muốn tự mình thiết lập một máy chủ git. Lợi ích của GitHub? Chà, dễ sử dụng, nhiều người biết đến nó để những người khác có thể tìm thấy mã của bạn và theo dõi / fork nó để cải thiện.

  4. Làm thế nào để Git so sánh với một hệ thống sao lưu như Time Machine?

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

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

    Chính xác.

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

    Xem # 4.


5
Trên thực tế, 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ụ cho sự hợp 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.
Davoud Taghawi-Nejad

@ DavoudTaghawi-Nejad có nhưng tôi chắc chắn OP đã đề cập đến 'không có Github' là 'không đặc biệt 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 như một bản sao lưu, không phải để cộng tác. Nếu có mã lửa / etc là an toàn.
Thufir

github theo dõi và tính năng ngã ba là gì?
Mou

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

    Git là một hệ thống kiểm soát phiên bản phân tán. 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 bảo nó làm như vậy. (Nói cách khác, bạn quyết định tập tin nào sẽ theo dõi và khi nào cần "chụp nhanh" bất kỳ sửa đổi nào.)

    Ngược lại, GitHub là một trang web cho phép bạn xuất bản các kho Git trực tuyến, có thể hữu ích vì 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à hệ thống kiểm soát phiên bản "phân tán" (chứ không phải "tập trung") 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 mình sang hệ thống từ xa (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 nói với Git bằng tay để đẩy những thay đổi đó.

  3. Bạn có thể sử dụng Git mà không có GitHub? 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 một bản sao lưu các tập tin của bạn.
    • Nó cung cấp cho bạn một giao diện trực quan để điều hướng repos của bạn.
    • Nó cung cấp cho người khác một cách để điều hướng repos của bạn.
    • Nó 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 một hệ thống theo dõi vấn đề nhẹ.
  4. Làm thế nào để Git so sánh với một hệ thống sao lưu như Time Machine?

    Git không sao lưu các tệp của bạn, mặc dù nó cung cấp cho bạn quyền kiểm soát chi tiết hơn nhiều so với hệ thống sao lưu truyền thống về những gì và khi bạn sao lưu. Cụ thể, bạn "cam kết" mỗi khi 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 bởi vì bạn có thể dễ dàng xem lịch sử thay đổi của 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 nói cách khác là nếu bạn không cam kết bạn sẽ không có phiên bản mới của những thay đổi được thực hiện?

    Vâng, đây là một quá trình thủ công.

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

    • Git sử dụng một hệ thống phân nhánh mạnh mẽ cho phép bạn làm việc trên nhiều dòng phát triển độc lập đồng thời và sau đó hợp nhất các nhánh đó lại với nhau khi cần.
    • Git cho phép bạn xem sự khác biệt từng dòng giữa các phiên bản khác nhau của tệp, điều này giúp việc khắc phục sự cố dễ dàng hơn.
    • Git buộc bạn phải mô tả từng cam kết của mình, điều này giúp 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 trở lại phiên bản trước đó).
    • Nếu bạn cần trợ giúp về mã của mình, việc nó được Git theo dõi và lưu trữ trên GitHub sẽ giúp người khác nhìn vào mã của bạn dễ dàng hơn nhiều.

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.