Git và GitHub - Sử dụng Git đúng cách giúp tối đa hóa công việc
Git và Github là hai khái niệm rất quen thuộc với dân dev, thực tế nhiều người còn sử dụng chúng hàng ngày. Vậy cần biết cụ thể những gì về Git và GitHub? Sử dụng đúng như thế nào ngay từ đầu để làm việc hiệu quả về sau?
Khái niệm cơ bản về Git và Github
Cùng xét 1 câu chuyện về hai anh chàng lập trình viên, cùng làm dự án chung với nhau:
Có hai anh chàng lập trình viên đang cùng với nhau cùng xây dựng một phần mềm cho khách hàng. Và hai anh chàng này chọn làm việc chung với nhau bằng cách mỗi người tự viết code một ít và gửi cho nhau qua email hoặc một phương thức gửi dữ liệu thông thường nào đó. Mỗi người sau khi nhận được code của nhau sẽ tiến hành tự xem và sửa lại, sau đó cùng nhau ráp nối vào phần mềm mà họ cần làm. Tuy nhiên, một hôm anh A bỗng nhiên vô tình viết code sai vào phần mềm dẫn tới sản phẩm bị lỗi mà trước đó cả hai anh đều không hề sao lưu lại do phần mềm quá lớn. Và thế là hai anh lại cùng nhau xây dựng lại tính năng bị lỗi và tiếp tục gửi cho nhau như vậy.
Xuất phát từ câu chuyện trên chúng ta thấy có hai vấn đề phát sinh ở đây đó là:
1. Mỗi người tự code riêng và gửi cho nhau qua email rất mất thời gian của nhau. Hơn nữa, anh B sẽ không thể biết được anh A đã thay đổi những gì, có ảnh hưởng gì đến code chung của toàn hệ thống hay không, và việc tiến hành merge code rất khó kiểm soát.
2. Việc sửa code mà không hề có bản sao lưu trước đó khiến cho họ phải viết lại code từ đầu khi phần mềm bị lỗi. Việc Git xuất hiện sẽ giúp giải quyết được vấn đề của hai anh chàng trên một cách gọn lẹ, ngoài ra Git còn rất nhiều tính năng hữu hiệu khác nữa đó các bạn.
Vậy Git là gì và sử dụng để làm gì?
Git là tên gọi của một Hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS ), là một trong những hệ thống quản lý phiên bản phân tán phổ biến nhất hiện nay .
DVCS nghĩa là hệ thống giúp mỗi máy tính có thể lưu trữ nhiều phiên bản khác nhau của một mã nguồn được nhân bản (clone) từ một kho chứa mã nguồn (repository), mỗi thay đổi vào mã nguồn trên máy tính sẽ có thể ủy thác (commit) rồi đưa lên máy chủ nơi đặt kho chứa chính. Và một máy tính khác (nếu họ có quyền truy cập) cũng có thể clone lại mã nguồn từ kho chứa hoặc clone lại một tập hợp các thay đổi mới nhất trên máy tính kia.
Trong Git, thư mục làm việc trên máy tính gọi là Working Tree.
Hiểu đơn giản thì Git sẽ giúp người dùng lưu lại các phiên bản của những lần thay đổi vào mã nguồn và sẽ dễ dàng cho việc khôi phục lại mà không cần phải thủ công copy rồi paste vào đâu đó, phiên bản đó đã được sao lưu. Khi chúng ta phát hiện ra lỗi ở đâu đó và muốn backup lại phiên làm việc trước khi bị lỗi xảy ra thì sẽ thật đơn giản khi chúng ta sử dụng Git. Một điểm đặc biệt nữa là một thành viên trong cùng một team khi làm việc với nhau hoàn toàn có thể theo dõi online được các thay đổi của các thành viên khác ở từng phiên bản làm việc mà không nhất thiết phải ngồi ngay cạnh nhau, họ cũng có thể đối chiếu được những thay đổi đó để rồi gộp phiên bản của thành viên khác vào phiên bản của họ. Cuối cùng là tất cả có thể đưa các thay đổi vào mã nguồn của mình lên một kho chứa mã nguồn.
Cơ chế lưu trữ phiên bản của Git là nó sẽ tạo ra một "ảnh chụp" (snapshot) trên mỗi tập tin và thư mục sau khi commit, từ đó nó có thể cho phép bạn tái sử dụng lại một ảnh chụp nào đó mà bạn có thể hiểu đó là một phiên bản. Đây cũng chính là lợi thế của Git so với các DVCS khác khi nó không "lưu cứng" dữ liệu mà sẽ lưu với dạng snapshot.
Còn anh bạn cùng cha khác mẹ kia là ai nhỉ?
Tổng quan về Github
Chúng ta đã nghe tới Git và có thể đã dùng GitHub nhưng chúng ta đa phần vẫn nhầm lẫn Git vs GitHub là một bởi vì cứ nói đến Git là nghĩ tới GitHub. Đó là một sự hiểu lầm vì Git như đã giải thích ở trên đó là tên gọi của một mô hình hệ thống, các máy tính có thể clone lại mã nguồn từ một repository , còn GitHub là tên của một công ty cũng cấp dịch vụ máy chủ repository công cộng, mỗi người có thể truy cập vào website trang chủ để tạo tài khoản trên đó và tạo ra kho chứa source của riêng mình khi làm việc.
Github được đánh giá cao và ưu thích, rất nhiều các công ty lớn đặt kho code tại đây: Twiter, Facebook, linkedin... và google cũng hiện diện trên Github.
Trang chủ: https://github.com/
Cài đặt Git trên Linux
Sử dụng không mã hóa
Bước 1: Cài đặt Git
sudo apt-get install git ( Ubuntu )
yum install -y git ( CentOS )
Bước 2: Cài đặt thông tin user Git :
git config --global user.name "QuocCuong97"
git config --global user.email "cuongnq24101997@gmail.com"
Bước 3: Kiểm tra lại thông tin :
Liên kết mã hóa SSH
Tạo private key:
=> Ghi nhớ passphrase đã tạo.
Kết quả sau khi tạo key:
Thêm private key vào tiến trình SSH :
ssh-agent -s
ssh-add /root/.ssh/id_rsa
Copy public key
Truy cập URL : https://github.com/settings/keys , chọn New SSH key:
Paste public key vào rồi chọn Add SSH key:
Xác thực lại mật khẩu của Github:
Liên kết thành công , có thể commit lên Github tại máy local mà không cần nhập username và password.
Các thao tác trên Git
Clone
Cho phép clone repository từ Github về máy local
hoặc
Add
Trong quá trình làm việc với Local Repository , tạo file newfile.md trong đường dẫn /root/INTERN/docs
Thực hiện add file lên Github:
git add newfile.md
hoặc add tất cả các file đã thêm vào :
git add *
Thực hiện kiểm tra: file newfile.md đang đợi commit
git status
Commit
Giống như xét duyệt lại lần cuối các thay đổi trong local repository để đưa lên Github
git commit newfile.md -m "Tao file moi"
hoặc commit tất cả các file pending :
git commit -m "Tao file moi"
-m: Ghi lại comment cho 1 commit
Push
Đẩy các file đã commit lên Github
git push origin master
Pull
Giả sử có 1 thay đổi nào đó được tạo trên Github , cần phải đồng bộ xuống Local để làm việc . Thao tác pull sẽ đối chiếu remote repo trên Github và Local repo sau đó thực hiện đồng bộ xuống máy Local .
git pull
Phạm Thanh Long
Pho Tue SoftWare Solutions JSC là Nhà Cung cấp dịch Trung Tâm Dữ Liệu, Điện Toán Đám Mây Và Phát Triển Phần Mềm Hàng Đầu Việt Nam. Hệ Thống Data Center Đáp Ứng Mọi Nhu Cầu Với Kết Nối Internet Nhanh, Băng Thông Lớn, Uptime Lên Đến 99,99% Theo Tiêu Chuẩn TIER III-TIA 942.
Leave a comment
Your email address will not be published. Required fields are marked *