Hexo

Đây là bài mình tổng hợp một số kiến thức cơ bản về Git, giúp bạn có thể hình dung được cách hoạt động git và sử dụng được một số tính năng cơ bản. Happy Time!

I. Git là gì ?

Git là một “Hệ thống quản lý phiên bản phân tán“. Nói đơn giản nó giúp bạn lưu lại phiên bản của các lần thay đổi mã nguồn và có thể dễ dàng tìm lại mà
không cần phải copy mã nguồn và lưu ở đâu đó. Một người khác cũng có thể xem các thay đổi này của bạn ở từng phiên bản, họ có thể đối chiếu sự thay đổi theo từng phiên bản của
bạn và gộp vào phiên bản của họ. Cuối cùng tất cả các phiên bản đều được đưa lên một kho chứa mã nguồn.

Chú ý : Git là một mô hình hệ thống. Github,Gitlab,… chỉ là một máy chủ dịch vụ xây dựng theo mô hình git giúp cho người dùng có thể tạo tài khoản và tự quản lý các kho chứa mã nguồn riêng của mình

II. Cài đặt:

Mac: https://git-scm.com/download/mac

Windows: https://git-for-windows.github.io/

Linux: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git

III. Tạo và checkout một repository

  • Để tạo một repositort mới tạo một thư mục mới, mở nó lên và dùng lệnh:

    git init. 
    
  • Để checkout một repo:

    1. Đối với Repo nội bộ:

      git clone /path/to/repository
      
    2. Đối với Remote repo:

      git clone username@host:/path/to/repository      
      

IV. Git Workflow

Hexo

Một repo của git bao gồm 3 khu vực chính:

  • Thư mục đang làm việc (Working directory): Thư mục này lưu trữ các file mã nguồn của bạn.
  • Index (hay Stagging Area): Chứa thông tin các file chuẩn bị được commit
  • Repository: Kho chứa mã nguồn, nơi lưu lại tất cả các phiên bản mã nguồn của bạn

Thông thường git sẽ hoạt động theo luồng như sau:

  1. Bạn sửa file trong thư mục đang làm việc (working directory)
  2. Git sẽ tạo 1 bản snapshot file này và đưa vào mục các file theo dõi (Staging Area)
  3. Bạn thực hiện commit, git sẽ lấy các file trong mục theo dõi và lưu các snapshot của file nó vào thư mục git của bạn

V. Lệnh add và commit :

  • Bạn có thể thêm các file vào mục staging area bằng lệnh add :

    git add <filename>
    

    hoặc

    git add 
    

    để thêm 1 file cụ thể hoặc tất cả vào mục staging area.

  • Lưu các thay đổi vào local repo của bạn

    git commit -m "Commit message"
    

VI. Đẩy thay đổi của bạn lên remote repository

  • Sau khi bạn đã commit xong thay đổi của bạn. Lúc này các thay đổi của bạn được ở mục HEAD (dễ hiểu hơn là phiên bản mới nhất). Bây giờ để đẩy các thay đổi mới nhất lên remote repository dùng lệnh sau
    git push origin master                 

trong đó **master** là nhánh bạn muốn đẩy lên.
  • Nếu local repository của bạn chưa được kết nối với remote server thì dùng lệnh:
git remote add origin <server>

VII. Nhánh (Branch)

Trong git Branch được dùng để tách biệt môi trường làm việc cho developer.

Hexo

Ví dụ: Bạn muốn tạo ra một phiên bản thử nghiệm với môi trường code hiện tại nhưng lại không muốn nó ảnh hưởng tới các file code hiện tại, việc này có thể thực hiện bằng cách clone lại chính repository bạn đang dùng hoặc copy ra một chỗ khác nhưng 2 cách trên đều rất mất công và khó khăn cho việc đồng bộ hóa code.

Để xử lý vấn đề trên Git cung cấp cho ta cơ chế phân nhánh. Nhánh ban đầu khi bạn tạo repository là nhánh master, nhánh này dùng để chứa các code chính trong project

  • Tạo một nhánh: quay lại ví dụ lúc nãy để tạo một bản thử nghiệm bạn muốn mà không làm ảnh hưởng tới các file code hiện tại bạn cần tạo một nhánh mới gọi là develop bằng lệnh:

    git checkout -b develop
    

    lúc này toàn bộ mã nguồn từ nhánh master sẽ được copy sang nhánh develop, mọi thay đổi trên nhánh develop sẽ không ảnh hưởng tới nhánh master và ngược lại.

  • Chuyển nhánh: Để chuyển nhánh ta dùng lệnh

    git checkout <tên nhánh>
    
  • Xóa nhánh: Để xóa một nhánh dùng lệnh sau

    git branch -d <tên nhánh>
    
  • Cập nhật lên remote repository: Để người khác thấy được nhánh của bạn thì phải push nhánh đó lên remote repository bằng lệnh sau

    git push origin <tên nhánh>
    

VIII. Cập nhật và tích hợp (update and merge)

Hexo
  • Pull: Để cập nhật local repository của bạn với lần commit mới nhất trên remote repository dùng lệnh:

    git pull
    

    lệnh này sẽ tự động lấy code mới trên remote về(fetch) và tiến hành trộn(merge_ với local repository của bạn

  • Trộn nhánh: Để trộn một nhánh bất kỳ vào nhánh bạn đang sử dụng dùng lệnh sau

    git merge <tên nhánh>
    

    Chú ý: Trong cả 2 trường hợp trên Git sẽ cố gắng tự merge code của bạn. Tuy nhiên đôi khi sẽ có xung đột(conflict) mà Git không thể trộn code được. Lúc này bạn phải xử lý các xung đột thủ công bằng cách chỉnh sửa các tập tin được thông báo.

IX. Nhãn (Tag)

Mỗi khi phát hành một phiên bản của phần mềm ta nên tạo nhãn (tag) cho phiên bản đó. Để tạo 1 tag mới ta dùng lệnh sau:

git tag <tên phiên bản>  <checksum>
  • ở đây thường là mã commit của bạn hoặc 1 đoạn trong mã commit.

Bình luận và chia sẻ

  • page 1 of 1
Ảnh tác giả

Mây và Bão

Chào mừng các bạn đến với Blog của mình. Chúc các bạn vui vẻ!


Android Developer


VietNam