Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Tìm hiểu về Version Control Git, các câu lệnh trên Git bash và cách đưa file lên Github (PHẦN2 )

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tìm hiểu về Version Control Git, các câu lệnh trên Git bash và cách đưa file lên Github (PHẦN2 )

    2. Git là gì? Cách cài đặt Git.



    2.1 Git là gì?

    Git cũng giống như các VCS khác, chẳng hạn như CVS, Subversion hoặc Perforce - làm như vậy sẽ giúp bạn tránh được những nhầm lẫn tinh vi khi sử dụng công cụ. Mặc dù giao diện người dùng của Git khá giống với các VCS khác này, Git lưu trữ và suy nghĩ về thông tin theo một cách rất khác và hiểu được những điểm khác biệt này sẽ giúp bạn tránh bị nhầm lẫn khi sử dụng nó.
    1. Ảnh chụp nhanh, không khác biệt

    Sự khác biệt chính giữa Git và bất kỳ VCS nào khác (bao gồm Subversion và bạn bè) là cách Git nghĩ về dữ liệu của nó. Về mặt khái niệm, hầu hết các hệ thống khác lưu trữ thông tin dưới dạng danh sách các thay đổi dựa trên tệp. Các hệ thống khác này (CVS, Subversion, Perforce, Bazaar, v.v.) coi thông tin chúng lưu trữ dưới dạng một tập hợp tệp và những thay đổi được thực hiện đối với từng tệp theo thời gian (điều này thường được mô tả là kiểm soát phiên bản dựa trên delta)



    Đây là điểm khác biệt quan trọng giữa Git và gần như tất cả các VCS khác. Nó làm cho Git xem xét lại hầu hết mọi khía cạnh của kiểm soát phiên bản mà hầu hết các hệ thống khác đã sao chép từ thế hệ trước. Điều này làm cho Git giống như một hệ thống tệp nhỏ với một số công cụ cực kỳ mạnh mẽ được tích hợp bên trên nó, thay vì chỉ đơn giản là một VCS.

    b.Gần như mọi hoạt động đều là cục bộ

    Hầu hết các hoạt động trong Git chỉ cần các tệp cục bộ và tài nguyên để hoạt động - nói chung không cần thông tin từ một máy tính khác trong mạng của bạn. Nếu bạn đã quen với một CVCS, nơi hầu hết các hoạt động đều có độ trễ mạng, khía cạnh này của Git sẽ khiến bạn nghĩ rằng các vị thần tốc độ đã ban phước cho Git với sức mạnh phi phàm. Bởi vì bạn có toàn bộ lịch sử của dự án ngay trên đĩa cục bộ của mình, hầu hết các hoạt động dường như gần như tức thời.

    Ví dụ: để duyệt lịch sử của dự án, Git không cần phải ra ngoài máy chủ để lấy lịch sử và hiển thị cho bạn - nó chỉ cần đọc trực tiếp từ cơ sở dữ liệu cục bộ của bạn. Điều này có nghĩa là bạn thấy lịch sử dự án gần như ngay lập tức. Nếu bạn muốn xem những thay đổi được giới thiệu giữa phiên bản hiện tại của tệp và tệp một tháng trước, Git có thể tra cứu tệp một tháng trước và thực hiện tính toán chênh lệch cục bộ, thay vì phải yêu cầu máy chủ từ xa thực hiện. hoặc kéo phiên bản cũ hơn của tệp từ máy chủ từ xa để thực hiện việc đó cục bộ.

    c. Git có tính toàn vẹn

    Mọi thứ trong Git được tổng kiểm tra trước khi nó được lưu trữ và sau đó được tham chiếu bởi tổng kiểm tra đó. Điều này có nghĩa là không thể thay đổi nội dung của bất kỳ tệp hoặc thư mục nào mà Git không biết về nó. Chức năng này được tích hợp vào Git ở các cấp thấp nhất và không thể thiếu trong triết lý của nó. Bạn không thể mất thông tin khi chuyển tiếp hoặc bị hỏng tệp mà Git không thể phát hiện ra nó.

    Cơ chế mà Git sử dụng để tổng kiểm tra này được gọi là hàm băm SHA-1. Đây là một chuỗi 40 ký tự bao gồm các ký tự thập lục phân (0–9 và a – f) và được tính toán dựa trên nội dung của cấu trúc tệp hoặc thư mục trong Git. Hàm băm SHA-1 trông giống như sau:
    24b9da6552252987aa493b52f8696cd6d3b00373
    Bạn sẽ thấy các giá trị băm này ở khắp nơi trong Git vì nó sử dụng chúng rất nhiều. Trên thực tế, Git lưu trữ mọi thứ trong cơ sở dữ liệu của nó không phải bằng tên tệp mà bằng giá trị băm của nội dung của nó.

    d. Git thường chỉ thêm dữ liệu

    Khi bạn thực hiện các hành động trong Git, gần như tất cả chúng chỉ thêm dữ liệu vào cơ sở dữ liệu Git. Thật khó để yêu cầu hệ thống thực hiện bất cứ điều gì không thể hoàn tác hoặc xóa dữ liệu theo bất kỳ cách nào. Như với bất kỳ VCS nào, bạn có thể làm mất hoặc xáo trộn các thay đổi mà bạn chưa cam kết, nhưng sau khi bạn thực hiện snapshot vào Git, rất khó để mất, đặc biệt nếu bạn thường xuyên đẩy cơ sở dữ liệu của mình sang một kho lưu trữ khác.

    Điều này làm cho việc sử dụng Git trở nên thú vị vì chúng tôi biết rằng chúng tôi có thể thử nghiệm mà không có nguy cơ làm hỏng mọi thứ. Để có cái nhìn sâu hơn về cách Git lưu trữ dữ liệu của nó và cách bạn có thể khôi phục dữ liệu bị mất

    e. Tam kỳ

    Hãy chú ý ngay bây giờ - đây là điều chính cần nhớ về Git nếu bạn muốn phần còn lại của quá trình học tập của mình diễn ra suôn sẻ. Git có ba trạng thái chính mà tệp của bạn có thể cư trú: đã sửa đổi (Modified), phân giai đoạn (Staged) và cam kết (Committed):
    • Đã sửa đổi có nghĩa là bạn đã thay đổi tệp nhưng chưa cam kết nó với cơ sở dữ liệu của bạn.
    • Staged có nghĩa là bạn đã đánh dấu một tệp đã sửa đổi trong phiên bản hiện tại của nó để chuyển sang ảnh chụp nhanh cam kết tiếp theo của bạn.
    • Đã cam kết có nghĩa là dữ liệu được lưu trữ an toàn trong cơ sở dữ liệu cục bộ của bạn.

    Điều này dẫn chúng ta đến ba phần chính của một dự án Git: cây làm việc, khu vực dàn dựng và thư mục Git.



    Cây làm việc là một bản kiểm tra duy nhất của một phiên bản của dự án. Các tệp này được kéo ra khỏi cơ sở dữ liệu nén trong thư mục Git và được đặt trên đĩa để bạn sử dụng hoặc sửa đổi.

    Khu vực dàn dựng là một tệp, thường được chứa trong thư mục Git của bạn, lưu trữ thông tin về những gì sẽ đi vào cam kết tiếp theo của bạn. Tên kỹ thuật của nó theo cách nói của Git là "chỉ mục", nhưng cụm từ "khu vực dàn dựng" cũng hoạt động tốt.

    Thư mục Git là nơi Git lưu trữ siêu dữ liệu và cơ sở dữ liệu đối tượng cho dự án của bạn. Đây là phần quan trọng nhất của Git và nó là phần được sao chép khi bạn sao chép kho lưu trữ từ một máy tính khác.

    Quy trình công việc Git cơ bản diễn ra như sau:

    Bước 1: Bạn sửa đổi (Modified) các tệp trong cây (Working Tree) làm việc của mình.

    Bước 2: Bạn chỉ chọn lọc những thay đổi mà bạn muốn trở thành một phần của cam kết (Commited) tiếp theo, chỉ thêm (add) những thay đổi đó vào khu vực tổ chức (Staging Area).

    Bước 3: Bạn thực hiện một cam kết (Commit), lấy các tệp như chúng ở trong khu vực dàn dựng (Staging Area) và lưu trữ ảnh chụp (Snapshot) nhanh vĩnh viễn vào thư mục Git (.git) của bạn.

    Nếu một phiên bản cụ thể của tệp nằm trong thư mục Git, thì nó được coi là đã cam kết (Commited). Nếu nó đã được sửa đổi (Modified) và được thêm (added) vào khu vực dàn dựng (Staging Area), nó được dàn dựng (staged). Và nếu nó đã được thay đổi kể từ khi nó được kiểm tra nhưng chưa được tổ chức, nó sẽ được sửa đổi (Modified). Trong Kiến thức cơ bản về Git, bạn sẽ tìm hiểu thêm về những trạng thái này và cách bạn có thể tận dụng chúng hoặc bỏ qua hoàn toàn phần được tổ chức.
Working...
X