Git là gì?

Tôi sẽ thẳng vào vấn đề từ góc nhìn của tôi, còn về tài liệu tham khảm mọi người có thể tìm thấy ở git-scm book hoặc ở atlassian.com, cũng như hướng dẫn cài đặt trên mạng có rất nhiều. Cái tôi đóng góp vào có lẽ chỉ phương pháp, khi mà git có quá nhiều thứ như vậy, với những người mới chúng ta cần biết những gì trước, làm sao phân biệt giữa nhiều cái có vẻ giống nhau.

Tóm tắt ngắn ngọn, Git được gọi là Version Control System, không hơn kém gì ngoài việc nó là một tool dùng cho việc quản lý code, miễn phí và có cộng đồng sử dụng rộng rãi. Có 2 loại version control là Centralized Version Control và Distributed Version Control, thì git thuộc loại Distributed Version Control.

Tôi đã từng sử dụng SVN(Subversion) thông qua TortoiseSVN, nhưng cũng chưa tìm hiểu nhiều, nó thuộc loại Centralized Version Control.

Về sự khác nhau chính, chỉ tóm tắt trong vài điều dưới đây

Centralized Version Control Distributed Version Control
Chỉ có một kho lưu trữ (Centralized Reposity) cho tất cả mọi người mọi lúc Mỗi một người có thể tạo ra bản sao (fork) reposity từ repository gốc, để tự do thay đổi mà không ảnh hướng đến những người khác

Đa phần các lệnh thông thường là như nhau (add, commit, push, pull …)

Được minh hoạ như sau:

Centralized Version Control vs Distributed Version Control

Source

Không lan man dài dòng nữa, tôi sẽ đi vào những bước đầu tiên, mục đích chính là hướng dẫn những thiết lập cơ bản ban đầu, không phụ thuộc vào bạn code ngôn ngữ nào, framework nào, chỉ là setup.

Về cài đặt, các bạn có thể xem hướng dẫn ở trang trủ của git tại đây, tuỳ từng hệ điều hành nó sẽ khác nhau

Thứ hai là những config cở ban như name, email để chuẩn bị kết nối với Github (là một remote repository giúp chúng ta chỉa sẻ code cũng như công tác với mọi người trong quá trình phát triển)

Bạn có thể config mỗi một repos tương ứng với một user thông qua việc chỉ định config –local như sau:

$ git config --local user.name "John Doe"
$ git config --local user.email johndoe@example.com

Thông thường chúng ta chỉ có một user cho mọi project, chúng ta chỉ đơn giản set up một lần duy nhất với –global

Thứ ba là chúng ta sẽ thiết lập ssh để mỗi lần đẩy code lên không cần phải nhập lại user/password nữa. Về hướng dẫn chi tiết các bạn có thể follow ở đây. Mình sẽ tổng hợp lại một vài bước chính

Ok, như vậy là xong.

Mình viết bài này hoàn toàn là vì cộng đồng, nhưng nếu các bạn thấy hay, có ích mà muốn donate cho mình, mình rất cảm ơn, cũng như là một nguồn động lực to lớn để mình ra được các bài viết chất lượng hơn.

Buy me a coffee

Buy me a coffee