git là gì?

git là một hệ thống kiểm soát phiên bản phân tán (distributed version control system-dvcs), là một trong những hệ thống kiểm soát phiên bản phân tán phổ biến nhất hiện nay. git cung cấp cho mỗi nhà phát triển kho lưu trữ riêng (kho) chứa toàn bộ lịch sử thay đổi.

hệ thống kiểm soát phiên bản – vcs là gì?

vcs là viết tắt của Hệ thống kiểm soát phiên bản là một hệ thống kiểm soát phiên bản phân tán mã nguồn mở. Vcs sẽ lưu trữ tất cả các tệp trong toàn bộ dự án và ghi lại lịch sử thay đổi của toàn bộ tệp. Mỗi thay đổi đã lưu sẽđi đến một phiên bản.

vcs đề cập đến một hệ thống cho phép các lập trình viên lưu trữ các phiên bản khác nhau của mã nguồn nhân bản (clone) từ một kho lưu trữ mã nguồn duy nhất (kho), mỗi phần nhỏ sẽ thay đổi thành mã nguồn cục bộ có thể được ủy quyền (cam kết), rồi tải lên máy chủ nơi đặt kho chính.

Nếu một máy tính khác có quyền truy cập, họ cũng có thể sao chép mã nguồn từ kho lưu trữ hoặc sao chép lại một tập hợp các thay đổi mới nhất trên một máy tính khác.

Lập trình viên có thể xem danh sách thay đổi tệp, giống như xem dòng thời gian của phiên bản. Mỗi phiên bản bao gồm: nội dung tệp bị thay đổi, ngày giờ sửa đổi, ai thay đổi, lý do thay đổi hoặc tên phiên bản…

>>> Tìm việc làm git lương cao tại topdev

vcs hoạt động như thế nào?

  1. Lưu giữ lịch sử phiên bản của bất kỳ thay đổi dự án nào. Giúp xem lại các thay đổi hoặc quay lại sau.
  2. Việc chia sẻ mã đã trở nên dễ dàng hơn, lập trình viên có thể công khai mã cho bất kỳ ai hoặc chỉ riêng tư cho những người được ủy quyền nhất định truy cập và lấy mã.
  3. Đây là một vcs, và git ghi nhớ toàn bộ lịch sử thay đổi của mã nguồn trong dự án. Việc chỉnh sửa tệp theo chương trình, thêm dòng mã trong tệp, xóa dòng mã trong dòng tùy ý … đều được git ghi lại và lưu trữ.

    git hoạt động như thế nào?

    Sự khác biệt chính giữa git và bất kỳ vcs ​​nào khác (kể cả subversion…) là cách git nhìn thấy 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 thay đổi dựa trên tệp. Các hệ thống này (cvs, subversion, perforce, bazaar, v.v.) xử lý thông tin mà chúng lưu trữ dưới dạng tập hợp các tệp và thực hiện các thay đổi đối với từng tệp theo thời gian.

    git không xem xét hoặc lưu trữ dữ liệu của nó theo cách này. Thay vào đó, git coi thông tin được lưu trữ là một tập hợp các ảnh chụp nhanh—một ảnh chụp nhanh toàn bộ nội dung của tất cả các tệp tại một thời điểm nhất định.

    Mỗi khi bạn “cam kết”, git “tìm nạp” và tạo ảnh chụp nhanh cũng như tham chiếu ảnh chụp nhanh đó. Để đạt hiệu quả, git sẽ không lưu trữ lại một tệp nếu nó không thay đổi — chỉ là một liên kết đến cùng một tệp mà nó đã lưu trữ trước đó. Đây là cách git xem xét dữ liệu của nó:

    Đây là điểm khác biệt quan trọng giữa git và hầu hết các VC khác. Nó khiến git phải suy nghĩ lại về hầu hết mọi khía cạnh của việc kiểm soát phiên bản mà hầu hết các hệ thống khác đã sao chép từ các thế hệ trước. Điều này làm cho git giống như một hệ thống tệp nhỏ trên đó một số công cụ rất mạnh được xây dựng, thay vì chỉ là một vcs.

    Lợi ích của git là gì?

    Các dự án thực tế thường có nhiều lập trình viên làm việc song song. Do đó, cần có một hệ thống kiểm soát phiên bản như git để đảm bảo rằng không có xung đột mã giữa các lập trình viên.

    Hơn nữa, yêu cầu của những dự án như vậy thay đổi thường xuyên. Vì vậy, các hệ thống kiểm soát phiên bản cho phép các nhà phát triển khôi phục và khôi phục các phiên bản mã cũ hơn.

    Cuối cùng, nhiều dự án liên quan đến cùng một cơ sở mã đôi khi được chạy đồng thời. Trong trường hợp này, khái niệm về các nhánh trong git là rất quan trọng.

    • Dễ sử dụng, nhanh, gọn, lẹ và rất an toàn.
    • Dễ dàng kết hợp các nhánh, điều này có thể giúp quy trình viết mã của nhóm dễ dàng hơn.
    • Chỉ cần sao chép mã nguồn từ kho lưu trữ, sao chép phiên bản đã thay đổi từ kho lưu trữ hoặc sao chép một nhánh từ kho lưu trữ và bạn có thể làm việc mọi lúc, mọi nơi.
    • Việc triển khai sản phẩm của bạn không thể dễ dàng hơn thế.
    • Các thuật ngữ git quan trọng

      1. nhánh

      Nhánh (nhánh) đại diện cho các phiên bản cụ thể của kho lưu trữ phân nhánh từ dự án chính của bạn.

      nhánh cho phép bạn theo dõi các thay đổi thử nghiệm được thực hiện đối với kho lưu trữ của mình và có thể hoàn nguyên về phiên bản cũ hơn.

      2. gửi

      Một cam kết đại diện cho một điểm cụ thể trong lịch sử của dự án. Sử dụng lệnh cam kết kết hợp với lệnh git add để cho git biết những thay đổi bạn muốn lưu vào kho lưu trữ cục bộ của mình.

      3. thanh toán

      Sử dụng git checkout để chuyển đổi giữa các nhánh. Chỉ cần nhập git checkout theo sau là tên nhánh bạn muốn đến hoặc nhập git checkout master để quay lại nhánh chính.

      4. Nhận

      Lệnh git fetch nhận một bản sao và tải tất cả các tệp nhánh về máy tính của bạn. Sử dụng điều này để lưu các thay đổi mới nhất vào kho lưu trữ của bạn. Nó có thể tìm nạp nhiều nhánh cùng một lúc.

      5. ngã ba

      Một ngã ba là một bản sao của một kho lưu trữ. Các nhà phát triển thường sử dụng các nhánh để kiểm tra các thay đổi mà không ảnh hưởng đến dự án chính.

      6. tiêu đề

      Commit ở đầu nhánh được gọi là head. Nó đại diện cho cam kết mới nhất của kho lưu trữ mà bạn hiện đang làm việc.

      7.Chỉ mục

      Bất cứ khi nào bạn thêm, xóa hoặc thay đổi một tệp, tệp đó vẫn nằm trong chỉ mục cho đến khi bạn sẵn sàng thực hiện các thay đổi của mình. Nó giống như khu vực tổ chức của git. Sử dụng lệnh git status để xem nội dung của chỉ mục.

      Dàn dựng là một bước trước khi cam kết trong git.

      Một cam kết trong git được thực hiện theo hai bước: dàn dựng và cam kết thực tế. Miễn là các thay đổi nằm trong khu vực tổ chức, git cho phép bạn chỉnh sửa nó theo bất kỳ cách nào bạn muốn (thay thế tệp phân vùng bằng một phiên bản khác của tệp tổ chức, loại bỏ các thay đổi trong phân đoạn, v.v.)

      Những thay đổi được đánh dấu bằng màu xanh lá cây đã sẵn sàng để thực hiện, trong khi những thay đổi được đánh dấu bằng màu đỏ thì không.

      8.Thầy

      master là nhánh chính của tất cả các kho lưu trữ. Nó nên bao gồm những thay đổi và cam kết gần đây.

      9. Hợp nhất

      Lệnh git merge, kết hợp với yêu cầu kéo, thêm các thay đổi từ nhánh này sang nhánh khác.

      10. Xuất xứ

      Origin là phiên bản mặc định của kho lưu trữ. nguồn gốc cũng hoạt động như một bí danh hệ thống để liên lạc với nhánh chính.

      git push Origin master đẩy các thay đổi cục bộ vào nhánh chính.

      11. Kéo

      Yêu cầu kéo đại diện cho một thay đổi được đề xuất đối với nhánh chính. Nếu bạn làm việc với một nhóm, bạn có thể tạo một yêu cầu kéo để yêu cầu người bảo trì kho lưu trữ xem xét các thay đổi và hợp nhất chúng.

      Lệnh git pull được sử dụng để thêm các thay đổi vào nhánh chính.

      12. Đẩy

      Lệnh git push được sử dụng để cập nhật nhánh từ xa với những thay đổi mới nhất mà bạn đã cam kết.

      13. khởi nghĩa

      Lệnh git rebase cho phép bạn tách, di chuyển hoặc xóa các lần xác nhận. Nó cũng có thể được sử dụng để kết hợp hai nhánh khác nhau.

      14. từ xa

      Điều khiển từ xa là bản sao của nhánh. Điều khiển từ xa giao tiếp ngược dòng với nhánh gốc của nó và với các điều khiển từ xa khác trong kho lưu trữ.

      15. kho lưu trữ

      Kho lưu trữ git chứa tất cả các tệp dự án của bạn, bao gồm các nhánh, thẻ và cam kết.

      16. ẩn

      Lệnh git stash loại bỏ các thay đổi trong chỉ mục và lưu trữ chúng sau.

      Tính năng này rất hữu ích nếu bạn muốn tạm dừng công việc đang làm và tạm thời làm việc khác. Nhiều trình biến đổi không thể được lưu trữ cùng một lúc.

      17. thẻ

      Các thẻ

      cung cấp cho bạn một cách để theo dõi các cam kết quan trọng. Các thẻ trọng lượng nhẹ chỉ hoạt động như các con trỏ, trong khi các thẻ chú thích được lưu trữ dưới dạng các đối tượng đầy đủ.

      19. Ngược dòng

      Trong ngữ cảnh của git, ngược dòng đề cập đến nơi các thay đổi được đẩy tới, thường là nhánh chính.

      Xem tài liệu tham khảo về git để biết thêm chi tiết về các điều khoản liên quan đến git.

      Các lệnh git cơ bản

      1) cấu hình git

      Chức năng: Đặt tên người dùng và email của bạn trong tệp cấu hình chính. Cách sử dụng: Để kiểm tra tên email và nhập cấu hình, hãy sử dụng git config global user.namegit config – global user.email. Đặt email hoặc tên mới /p>

      2) Khởi tạo

      Vai trò: Tạo dự án mới hoặc dự án hiện có trong kho lưu trữ git.

      Cách sử dụng: git init

      trong thư mục gốc của dự án

      3) Nhân bản

      Tác dụng: Sao chép 1 kho lưu trữ git từ nguồn từ xa.

      Cách sử dụng: git clone

      4) Trạng thái Git

      Chức năng: Kiểm tra trạng thái của các tệp bạn đã sửa đổi trong thư mục làm việc. Ví dụ: tất cả các thay đổi mới nhất kể từ lần xác nhận cuối cùng.

      Cách sử dụng: git status trong thư mục làm việc.

      5) git add

      Tác dụng: Thêm các thay đổi vào giai đoạn/chỉ mục trong thư mục làm việc.

      Cách sử dụng: git add

      6) Gửi

      hiệu ứng: cam kết đề cập đến hành động git lưu ảnh chụp nhanh các thay đổi của thư mục làm việc. Và các tệp và thư mục đã thay đổi phải nằm trong khu vực tổ chức. Mỗi cam kết lưu lịch sử chỉnh sửa của mã cùng với tên và địa chỉ email của người cam kết. Ngoài ra, trong git, bạn có thể khôi phục các tệp trong lịch sử cam kết của nó để phân nhánh sang nhánh khác, vì vậy bạn có thể dễ dàng khôi phục các thay đổi trước đó.

      Cách sử dụng: git commit -m ”đây là thông báo, bạn dùng nó ghi chú các thay đổi để dễ truy ngược lại”

      7) git đẩy/git kéo

      Vai trò: Đẩy hoặc kéo các thay đổi đối với điều khiển từ xa. Nếu bạn đã thêm và cam kết thay đổi và bạn muốn đẩy nó hoặc điều khiển từ xa của bạn được cập nhật và bạn áp dụng tất cả những thay đổi đó cho mã của mình.

      Cách sử dụng: git pull <:branch:>git push <:remote:>

      8) nhánh git

      Vai trò: Liệt kê tất cả các nhánh.

      Cách sử dụng: git branch hoặc git branch -a

      9) Thanh toán

      Vai trò: chuyển sang chi nhánh khác

      Cách sử dụng: git checkout <: branch:> hoặc ** _ git checkout -b <: branch:> nếu bạn muốn tạo và di chuyển đến một chi nhánh mới.

      10) bộ nhớ git

      Hiệu ứng: Lưu các thay đổi mà bạn không muốn thực hiện ngay.

      Cách sử dụng: git stash trong thư mục làm việc của bạn.

      11) Hợp nhất

      Tác dụng: Hợp nhất 2 nhánh thành nahu.

      Cách sử dụng: Đi đến nhánh cần hợp nhất, sau đó sử dụng git merge <:branch_ban_muon_merge:>

      12) đặt lại git

      Hiệu ứng: Bạn đã bao gồm một tệp trong khu vực tổ chức, nhưng bây giờ bạn muốn xóa nó khỏi đó, vì vậy bạn không phải cam kết nó.

      Cách sử dụng: git reset head_filename

      13) git remote

      Tác dụng: kiểm tra xem bạn có nguồn/điều khiển từ xa nào hoặc bổ sung thêm

      Cách sử dụng: git remote kiểm tra và liệt kê. và git remote add <:remote_url:> để thêm.

      14) git add

      Chức năng: Đưa tệp vào vùng lưu trữ tạm thời

      Cách sử dụng: git add name_file hoặc nếu muốn add tất cả các file của 1 thư mục thì git add all

      Đề xuất sử dụng git thường xuyên

      1. bảng cheat git

        Bạn không thể nhớ hết các lệnh, lúc này bạn nên sử dụng git cheat sheet để dễ dàng tìm kiếm các lệnh git mà bạn cần:

        • https://rogerdudler.github.io/git-guide/
        • https://git-scm.com/docs/gittutorial
        • https://gitsheet.wtf/
        • http://ndpsoftware.com/git-cheatsheet.html
        • https://gitexplorer.com/
        • 2. nên được gửi thường xuyên

          Chia nhỏ các cam kết của bạn và cam kết thường xuyên nhất có thể. Điều này giúp các thành viên trong nhóm tích hợp công việc của họ dễ dàng hơn mà không gặp phải xung đột hợp nhất.

          3. Kiểm tra và gửi

          Không bao giờ cam kết cho đến khi quá trình hoàn tất. Kiểm tra các thay đổi của bạn trước khi chia sẻ chúng với người khác.

          4. Viết ghi chú khi gửi

          Viết ghi chú khi bạn cam kết cho các thành viên khác trong nhóm biết những thay đổi bạn đã thực hiện. Hãy mô tả càng nhiều càng tốt.

          5. Kiểm tra nhánh khác

          Sử dụng các nhánh để giúp bạn theo dõi các lộ trình phát triển khác nhau.

          6. Thực hiện theo quy trình làm việc của git

          Bạn nên chọn tuân theo quy trình làm việc của git để đảm bảo toàn bộ nhóm của bạn đều tuân theo.

          Hy vọng bài viết này mang đến cho bạn nhiều thông tin hữu ích về git là gì? Và các lệnh git cơ bản mà mọi lập trình viên nên biết. blog topdev sẽ tổng hợp thêm nhiều kiến ​​thức bổ ích cho bạn đọc. Mong các bạn sẽ luôn ủng hộ và yêu thương chúng tôi

          Đừng quên tham khảo các thông tin tuyển dụng Thành phố Hồ Chí Minh, Hà Nội, Đà Nẵng hấp dẫn tại đây!

Kiểm tra tiếng Anh trực tuyến

Bạn đã biết trình độ tiếng Anh hiện tại của mình chưa?
Bắt đầu làm bài kiểm tra

Nhận tư vấn lộ trình từ ACET

Hãy để lại thông tin, tư vấn viên của ACET sẽ liên lạc với bạn trong thời gian sớm nhất.