Viết câu chuyện của riêng bạn với git

Xin chào mọi người 🙂 Trước khi tiếp tục với các văn bản của danh sách đơn hàng, tôi muốn kỷ niệm việc phát hành git 2.16 bằng cách cảm ơn từng người trong số những người đã gửi bản vá và từng người dùng, tổng cộng chúng tôi đã có khoảng 4000 dòng giữa cập nhật và sửa chữa , điều này không đánh giá cao phiên bản đầu tiên của tôi, nhưng nó nói lên lòng tốt của bạn 🙂 Cảm ơn bạn! Bây giờ, tôi sẽ bật mí cho các bạn một bí mật nho nhỏ, cho đến bây giờ chưa có lần nào tôi không ngồi viết một bài báo và suy nghĩ nhiều về nó, thường thì tôi chỉ viết liên tiếp, rồi thằn lằn tốt lấy lòng tốt. sửa lỗi đánh máy của tôi 🙂 vì vậy cũng cảm ơn anh ấy.

Đây không phải là điều tốt nhất khi chúng ta nói về việc viết bài, được cho là nó phải có mục tiêu và xây dựng cấu trúc, đánh dấu những điểm nhỏ và đánh giá, v.v. Bây giờ, điều này không chỉ áp dụng cho các blog nói chung, mà là điều cần thiết trong một phần mềm giả vờ là tốt 🙂 Đối với nhiệm vụ này, và sau một số vấn đề với phần mềm kiểm soát phiên bản được sử dụng trong quá trình phát triển hạt nhân vài năm trước, nó đã ra đời git ????

Học ở đâu git?

Số lượng tài liệu xung quanh git là đáng kinh ngạc, ngay cả khi chúng tôi chỉ lấy các trang man đi kèm với cài đặt, chúng tôi sẽ có một lượng lớn để đọc. Cá nhân tôi thấy sách git được thiết kế khá tốt, thậm chí mình đã dịch một số đoạn của phần 7, còn sót lại một ít, nhưng cho mình thời gian 😛 có lẽ trong tháng này mình dịch được những gì còn lại của phần đó.

Git làm gì?

Git được thiết kế để nhanh chóng, hiệu quả, đơn giản và hỗ trợ lượng lớn thông tin, sau cùng, cộng đồng hạt nhân đã tạo ra nó cho phần mềm của họ, đây là một trong những công trình chung lớn nhất của phần mềm miễn phí trên thế giới và có hàng trăm đóng góp mỗi giờ trong cơ sở mã vượt quá một triệu dòng.

Điều thú vị về git là cách nó duy trì các phiên bản của dữ liệu. Trong quá khứ (các chương trình kiểm soát phiên bản khác) đã nén tất cả các tệp hiện có tại một thời điểm trong lịch sử, chẳng hạn như tạo sao lưu. Git có một cách tiếp cận khác, khi thực hiện commit một điểm trong lịch sử được đánh dấu, điểm đó trong lịch sử có một loạt sửa đổi và hoạt động, vào cuối ngày, tất cả các sửa đổi được tổng hợp lại theo thời gian và các tệp thu được để có thể nén hoặc đánh dấu các cột mốc của các phiên bản. Vì tôi biết tất cả điều này nghe có vẻ phức tạp, tôi sẽ đưa bạn vào một cuộc hành trình kỳ diệu trong một ví dụ siêu cơ bản.

Dự án máy tính nhỏ

Máy tính sẽ là một chương trình tìm bình phương của một số nhất định, chúng tôi sẽ làm điều đó trong C và nó sẽ đơn giản nhất có thể, vì vậy đừng mong đợi nhiều kiểm tra bảo mật từ tôi. Đầu tiên, chúng ta sẽ tạo một kho lưu trữ, tôi sẽ làm điều đó với Github để giết hai con chim bằng một viên đá:

Sở hữu. Christopher Diaz Riveros

Chúng tôi đã thêm một số thứ đơn giản như giấy phép (rất quan trọng nếu bạn muốn bảo vệ tác phẩm của mình, trong trường hợp của tôi, buộc họ phải chia sẻ kết quả nếu họ muốn sử dụng nó làm cơ sở: P)

Bây giờ chúng ta hãy đi đến thiết bị đầu cuối thân yêu của chúng ta, git clone là lệnh chịu trách nhiệm tải xuống kho lưu trữ nằm trong url đã gán và tạo một bản sao cục bộ trên máy tính của chúng tôi.

Sở hữu. Christopher Diaz Riveros

Bây giờ hãy kiểm tra với git log những gì đã xảy ra trong lịch sử dự án của chúng tôi:

Ở đây chúng tôi có rất nhiều thông tin với các màu sắc khác nhau 🙂 hãy thử giải thích điều đó:

dòng màu vàng đầu tiên là "mã vạch cam kết" mỗi cam kết có số nhận dạng duy nhất của riêng nó, bạn có thể thực hiện nhiều việc, nhưng chúng tôi sẽ lưu nó để sử dụng sau. Bây giờ chúng tôi có HEAD của celeste và master màu xanh lá. Đây là "con trỏ" chức năng của chúng là trỏ đến vị trí hiện tại trong lịch sử của chúng ta (HEAD) và nhánh chúng tôi đang làm việc trên máy tính của mình (master).

origin/master là đối tác của internet, origin là tên mặc định đã được chỉ định cho URL, Và master là chi nhánh mà bạn đang làm việc ... để đơn giản, những người có / là những người không có trong nhóm của chúng tôi, nhưng là tham chiếu đến những gì trên internet.

Sau đó, chúng tôi có tác giả, ngày và giờ và bản tóm tắt cam kết. Đây là một đánh giá nhỏ về những gì đã xảy ra vào thời điểm đó trong lịch sử, rất quan trọng trong nhiều dự án và có nhiều thông tin lên án. Hãy xem xét kỹ hơn những gì đã xảy ra trong cam kết với lệnh git show <código-de-commit>

Sở hữu. Christopher Diaz Riveros

Lệnh git show đưa chúng ta đến màn hình này ở định dạng bản vá, nơi bạn có thể thấy những gì đã được thêm vào và những gì đã được xóa (nếu thứ gì đó đã bị xóa) tại thời điểm đó trong lịch sử, cho đến nay nó chỉ cho chúng ta thấy rằng Hồ sơ .gitignore,README.mdLICENSE.

Bây giờ chúng ta hãy bắt tay vào công việc, hãy viết một tập tin 🙂 chúng ta sẽ tạo ra cột mốc quan trọng đầu tiên trong lịch sử của chúng ta 😀:

Sở hữu. Christopher Diaz Riveros

Tóm lại, chúng ta sẽ tạo một chương trình hiển thị cho chúng ta số lượng đối số được truyền khi thực thi nó, đơn giản thôi 🙂

Sở hữu. Christopher Diaz Riveros

Điều đó thật dễ dàng 🙂 bây giờ chúng ta hãy xem lệnh hữu ích sau: git status

Sở hữu. Christopher Diaz Riveros

Có tấm lòng hảo tâm nào đó đã dịch git để các bạn dễ theo dõi, ở đây có nhiều thông tin bổ ích, biết mình đang ở nhánh chủ, được cập nhật thêm origin/master(chi nhánh Github), chúng tôi có các tệp chưa được kiểm tra! và để thêm chúng, chúng ta phải sử dụng git add, chúng ta hãy thử 🙂

Sở hữu. Christopher Diaz Riveros

Bây giờ chúng ta có một không gian xanh mới, trong đó tệp mà chúng ta đã thêm vào vùng làm việc được hiển thị. Tại nơi này, chúng tôi có thể nhóm các thay đổi của mình để thực hiện cam kết, cam kết bao gồm một cột mốc quan trọng trong suốt lịch sử dự án của chúng tôi, chúng tôi sẽ tạo cam kết 🙂 git commit

Sở hữu. Christopher Diaz Riveros

Giải thích ngắn gọn, dòng màu vàng là tiêu đề của cam kết của chúng tôi, tôi viết main.c để tham khảo trực quan. Văn bản màu đen là lời giải thích về những thay đổi được thực hiện kể từ lần cam kết trước cho đến nay 🙂 chúng ta lưu tệp và chúng ta sẽ thấy cam kết của mình được lưu trong sổ đăng ký.

Sở hữu. Christopher Diaz Riveros

Bây giờ chúng ta sẽ xem lịch sử của dự án của chúng ta với git log

Sở hữu. Christopher Diaz Riveros

Một lần nữa trong nhật ký, bây giờ chúng ta có thể thấy rằng các đường màu xanh lá cây và màu đỏ đã khác nhau, đó là bởi vì trong máy tính của chúng ta, chúng ta có cam kết cao hơn các đường được lưu trữ trên internet 🙂 chúng ta sẽ tiếp tục công việc, giả sử rằng bây giờ tôi muốn hiển thị trong trường hợp người dùng đặt nhiều hơn một đối số trong chương trình (điều này sẽ làm cho máy tính bị nhầm lẫn 🙂)

Như chúng ta thấy, chương trình của chúng tôi đã phát triển rất nhiều 😀, bây giờ chúng tôi có chức năng imprimir_ayuda() hiển thị thông báo về cách sử dụng các phép tính và trong khối main() bây giờ chúng tôi đánh giá với if(Một cái gì đó mà chúng ta sẽ thấy trong hướng dẫn lập trình vào lúc khác, bây giờ chỉ cần biết rằng nếu nhiều hơn 2 đối số được nhập vào máy tính, chương trình sẽ kết thúc và trợ giúp được hiển thị. Hãy thực thi nó:

Sở hữu. Christopher Diaz Riveros

Như bạn có thể thấy, nó bây giờ in ra số đã được gửi thay vì số đối số, nhưng điều đó tôi chưa nói với bạn trước đây 🙂 cho những người tò mò echo $? hiển thị mã thoát của chương trình cuối cùng được thực thi, là 1 bởi vì nó đã kết thúc do lỗi. Bây giờ chúng ta hãy xem lại câu chuyện của chúng ta diễn ra như thế nào:

Sở hữu. Christopher Diaz Riveros

Bây giờ chúng tôi biết rằng chúng tôi đã đi trước Github 1 cam kết, rằng tệp main.c đã được sửa đổi, hãy tạo cam kết tiếp theo bằng cách thực hiện git add main.c  và sau đó git commit????

Sở hữu. Christopher Diaz Riveros

Bây giờ chúng ta đã cụ thể hơn một chút, vì chúng ta đã triển khai một hàm và thay đổi mã xác thực. Bây giờ nó đã được lưu, hãy xem lại thay đổi cuối cùng của chúng tôi. Chúng ta có thể thấy nó với git show HEAD

Sở hữu. Christopher Diaz Riveros

Bây giờ bạn có thể thấy các đường màu đỏ và xanh lá cây, chúng tôi đã thêm thư viện stdlib.h, đã sửa đổi nhiều mã và thêm chức năng vào câu chuyện của chúng tôi.

Bây giờ chúng ta sẽ xem nhật ký: (git log)

Sở hữu. Christopher Diaz Riveros

Chúng tôi có thể thấy rằng chúng tôi đi trước phiên bản Github hai cam kết, chúng tôi sẽ cân bằng điểm đánh dấu một chút 🙂 cho mục đích mà chúng tôi sử dụng git push origin master

Với điều này chúng tôi nói, hãy gửi cam kết của tôi đến url origin trên chi nhánh master

Sở hữu. Christopher Diaz Riveros

Xin chúc mừng! Bây giờ những thay đổi của bạn đã có trên Github, bạn có tin tôi không? hãy xem lại nó 😉

Sở hữu. Christopher Diaz Riveros

Bây giờ chúng ta có 3 cam kết trên Github 🙂

tóm lại

Chúng tôi đã đề cập đến các khía cạnh cơ bản nhất của git, giờ đây họ có thể tạo một quy trình làm việc đơn giản trong các dự án của mình, đây là điều khó có thể làm được với git, nhưng nó chắc chắn là điều thực tế và hàng ngày nhất đối với một nhà phát triển hoặc blogger. Chúng tôi vẫn chưa đi đến cuối máy tính, nhưng chúng tôi sẽ để lại điều đó vào lúc khác 😉 Cảm ơn bạn rất nhiều vì đã đến đây và tôi hy vọng nó sẽ giúp bạn tham gia vào một số dự án 😀 Xin chào


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Pablo dijo

    Tốt ... Tôi không biết nếu bạn, nhưng tôi không thể nhìn thấy hình ảnh trong báo cáo này ...

    Liên quan

  2.   Pablo dijo

    Đó là một vấn đề với trình duyệt của tôi. Xin lỗi vì sự bất tiện.

  3.   Thế giới Tecprog dijo

    Tôi vẫn phải đọc nó chi tiết hơn, tôi là một người mới.

  4.   Guillermo dijo

    Bài viết tuyệt vời để bắt đầu với git, mặc dù tôi khuyên bạn nên ghi chú lại để hiểu chi tiết.
    Tôi chưa rõ một vài điều:
    tùy chọn cho cái gì Thêm .gitignore Cmặc dù tôi đoán tôi sẽ thấy nó khi tôi thực hành nó,
    Tại sao git thêm main.c phải được thực hiện lại trước khi git commit tiếp theo, việc thêm main.c có nói với git để so sánh tệp đó với phiên bản mạng không? Nó không tự động so sánh tất cả các tệp được thêm vào để theo dõi?

    1.    ChrisADR dijo

      Xin chào Guillermo, rất vui khi bạn thấy nó hữu ích, để trả lời các câu hỏi của bạn:

      .gitignore là một tệp cho git biết những định dạng hoặc mẫu nào cần bỏ qua, trong trường hợp này, việc chọn C khiến tệp .o bị bỏ qua và những tệp khác được tạo tại thời điểm biên dịch, điều này là tốt vì nếu không, git của bạn sẽ phát điên vào lúc này của mỗi lần biên dịch và theo dõi 🙂 bạn có thể kiểm tra số lượng lớn các định dạng mà git bỏ qua trong mẫu C của nó bằng cách thực hiện cat hoặc bằng trình soạn thảo văn bản.

      Mặc dù git sẽ theo dõi từng tệp được thêm vào cây làm việc, nhưng cần phải chọn cụ thể tệp nào sẽ nhập lần cam kết tiếp theo, để cung cấp cho bạn một ví dụ, giả sử rằng công việc của bạn đã khiến bạn phải sửa đổi 5 tệp khác nhau trước đó. có thể xem kết quả. Nếu bạn muốn cụ thể hơn một chút và giải thích những gì được thực hiện trong mỗi cái, bạn có thể thực hiện git add file1; git commit; git add file2; git commit… .3,4,5; git cam kết. Bằng cách này, câu chuyện của bạn rõ ràng và các thay đổi được xác định rõ ràng. Và trong trường hợp bạn phải thay đổi thứ gì đó hoặc hoàn nguyên (các chủ đề nâng cao hơn), bạn có thể hoàn nguyên những thứ cụ thể hoặc thêm những thứ cụ thể mà không thay đổi phần còn lại.

      Hy vọng nó sẽ giúp 🙂 lời chào và cảm ơn vì đã hỏi

    2.    ChrisADR dijo

      PS: git add không nói là so sánh với phiên bản trên mạng, nhưng với bản commit trước đó trong dòng công việc của bạn, nếu nó là cục bộ (xanh) thì nó sẽ so sánh với bản đó, nếu là từ xa (đỏ) thì sẽ so sánh với cái kia. Chỉ để làm rõ 😉

      1.    Guillermo dijo

        Hoàn hảo, tất nhiên nó làm rõ.