- vừa được xem lúc

TỔNG QUAN VỀ GIT FLOW VÀ CÁC LỆNH GIT PHỔ BIẾN

0 0 3

Người đăng: Truong Phung

Theo Viblo Asia

Các Lệnh Git Phổ Biến

Dưới đây là một số lệnh Git thường được sử dụng trong các tác vụ quản lý phiên bản (version control) hàng ngày:

1. Lệnh Git Cơ Bản

  • git init: Khởi tạo một Git repo mới trong thư mục hiện tại.

    git init
    
  • git clone: Sao chép một Git repo có từ một máy chủ từ xa (remote).

    git clone https://github.com/user/repo.git
    
  • git status Hiển thị trạng thái hiện tại của thư mục đang làm việc (working directory) và khu vực staging (khu vực được chuẩn bị cho commit).

    git status
    
  • git add: Thêm các thay đổi (tệp hoặc thư mục) vào lần commit tiếp theo.

    git add file.txt
    git add . # Thêm tất cả các thay đổi (Stage all changes)
    
  • git commit: Ghi lại các thay đổi đã được staged vào repo với một message tương ứng.

    git commit -m "Commit message"
    
  • git push: Đẩy (Push) các commit từ local lên remote repo.

    git push origin branch-name
    
  • git pull: Cập nhật các thay đổi từ remote repo về nhánh local branch.

    git pull origin branch-name
    

2. Branching và Merging

  • git branch: Liệt kê, tạo mới, hoặc xóa branches.

    git branch # Liệt kê tất cả các nhánh
    git branch new-branch # Tạo một nhánh mới
    git branch -d old-branch # Xóa một nhánh cũ
    
  • git checkout: Chuyển (switch) sang một nhánh hoặc commit khác.

    git checkout branch-name
    git checkout -b new-branch # Tạo và chuyển sang nhánh mới
    
  • git merge: Hợp nhất (merge) một nhánh (branch) vào nhánh hiện tại.

    git checkout main
    git merge feature-branch
    

3. Remote Repositories

  • git remote: Quản lý các kết nối với remote repo

    git remote -v # Liệt kê các kết nối từ xa
    git remote add origin https://github.com/user/repo.git # Thêm một remote mới
    
  • git fetch: Cập nhật các thay đổi đã diễn ra trên remote repo về local (chỉ fetch history).

    git fetch origin
    

4. Xem Lịch Sử (các thay đổi) Commits

  • git log: Hiển thị lịch sử commit.

    git log # Hiển thị lịch sử commit
    git log --oneline # Hiển thị lịch sử rút gọn
    git log --graph --oneline --decorate # Hiển thị lịch sử commit dưới dạng đồ thị
    
  • git diff: Hiển thị các thay đổi giữa các commits, branches, hay the working directory.

    git diff # Các thay đổi chưa được staged
    git diff --staged # Các thay đổi đã được staged để commit
    git diff branch1 branch2 # So sánh hai branch
    

5. Hoàn Tác Các Thay Đổi

  • git reset: Resets lại khu vực staging hoặc di chuyển con trỏ nhánh (branch pointer).

    git reset file.txt # Hủy staged một tệp
    git reset --hard HEAD^ # Trở về commit trước đó
    
  • git revert: Hoàn tác một commit cụ thể bằng cách tạo một commit mới để đảo ngược nó.

    git revert commit-sha
    

6. Lưu Trữ Các Thay Đổi (Stashing)

  • git stash: Tạm thời lưu các thay đổi chưa sẵn sàng để commit.

    git stash # Lưu trữ các thay đổi hiện tại
    git stash pop # Áp dụng lại các thay đổi đã lưu trữ và xóa chúng khỏi stash
    git stash list # Liệt kê tất cả các thay đổi đã lưu trữ
    

7. Gắn Thẻ (Tagging)

  • git tag: Tạo các tag để đánh dấu các commit cụ thể, thường dùng cho các bản phát hành (releases).

    git tag v1.0 # Tạo một lightweight tag
    git tag -a v1.0 -m "Version 1.0" # Tạo một annotated tag
    git push origin v1.0 # Đẩy tag lên remote repo
    

8. Cộng Tác (Collaboration)

  • git rebase: Áp dụng lại các commit trên một nhánh khác lên nhánh hiện tại , hữu ích để làm thẳng hàng, tuyến tính hóa (linearizing) lịch sử commit.

    git checkout feature-branch
    git rebase main
    
  • git cherry-pick: Áp dụng một commit cụ thể từ một nhánh khác.

    git cherry-pick commit-sha
    

Trên đây là những lệnh phổ biến khi làm việc với Git trong các dự án cá nhân và team.

Tổng Quan Về Git Flow

Git Flow là một chiến lược branching để quản lý phát triển tính năng, phát hành, và sửa lỗi theo cách có cấu trúc và mở rộng. Nó giúp các nhóm quản lý việc phát triển song song, cộng tác hiệu quả và xử lý phát hành và sửa lỗi một cách suôn sẻ. Dưới đây là tổng quan về Git Flow:

1. Nhánh Chính (Main Branches)

  • main (or master): Nhánh (branch) sẵn sàng cho production, chứa mã ổn định đã được deploy. Tất cả các bản phát hành (releases) được đánh tag tại đây.
  • develop: Nhánh phát triển chính nơi mã mới nhất cho bản phát hành tiếp theo được tích hợp. Các tính năng và sửa lỗi được hợp nhất vào develop.

2. Nhánh Hỗ Trợ (Supporting Branches)

Git Flow sử dụng các nhánh bổ sung cho phát triển tính năng, sửa lỗi và phát hành. Mỗi nhánh có vai trò cụ thể:

  • Feature Branches (feature/):

    • Dùng để phát triển các tính năng mới .
    • Được tạo từ develop và hợp nhất lại vào develop khi hoàn thành.
    • Ví dụ: feature/new-login
  • Release Branches (release/):

    • Dùng để chuẩn bị bản phát hành mới (new release).
    • Được tạo từ develop khi hoàn tất các tính năng, cho phép thử nghiệm cuối cùng, sửa lỗi và gắn phiên bản (tag version) trước khi hợp nhất vào main.
    • Ví dụ: release/v1.0
  • Hotfix Branches (hotfix/):

    • Dùng để sửa lỗi nghiêm trọng trên production.
    • Được tạo từ main và hợp nhất lại vào cả maindevelop để đảm bảo sửa lỗi áp dụng cho cả hai nhánh.
    • Ví dụ: hotfix/fix-payment-bug

3. Quy Trình Git Flow

  • Phát triển tính năng: hà phát triển tạo nhánh feature/ từ develop để làm việc trên tính năng mới. Sau khi hoàn thành, tính năng sẽ được hợp nhất lại vào develop.
  • Phát hành: Khi develop ổn định và sẵn sàng phát hành, một nhánh release/ được tạo để kiểm tra và điều chỉnh cuối cùng. Khi đã sẵn sàng, nó được hợp nhất vào main (for production) và develop (để cập nhật).
  • Sửa lỗi Hotfixes: Nếu phát hiện lỗi nghiêm trọng trên production, một nhánh hotfix/ được tạo từ main, sửa lỗi, và sau đó hợp nhất vào cả maindevelop để giữ cả hai nhánh được cập nhật.

4. Tag Phiên Bản (Version Tags)

Sau khi hợp nhất một release/ hoặc hotfix/ vào main, bạn gắn tag cho commit với số phiên bản tương ứng (ví dụ: v1.0) để đánh dấu bản phát hành (release).

Tóm Tắt Các Lệnh Git Flow Quan Trọng

  • Bắt đầu một tính năng mới:
    git checkout -b feature/xyz develop
    
  • Hoàn thành một tính năng:

    git checkout develop && git merge feature/xyz
    
  • Khởi tạo một bản phát hành release:

    git checkout -b release/v1.0 develop
    
  • Hoàn tất bản release:

    git checkout main && git merge release/v1.0
    
  • Khởi tạo một hotfix khi có lỗi:

    git checkout -b hotfix/fix-bug main
    
  • Hoàn tất hotfix:

    git checkout main && git merge hotfix/fix-bug
    

Git Flow rất lý tưởng cho các team cần một quy trình có cấu trúc bài bản để quản lý mã nguồn. Cảm ơn bạn đã xem hết.

Bình luận

Bài viết tương tự

- vừa được xem lúc

Đặt tên commit message sao cho "tình nghĩa anh em chắc chắn bền lâu"????

. Lời mở đầu. .

1 1 767

- vừa được xem lúc

Tập hợp những câu lệnh GIT hữu dụng

Dưới đây là một vài ví dụ về các câu lệnh Git mà tôi thường dùng. git config --global user.name "John Doe". git config --global user.

0 0 68

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 2): Trigger một work flow

Events trigger. Bạn có thể cấu hình cho workflows chạy khi có một sự kiện nào đó xảy ra trên GitHub, theo một lịch có sẵn hoặc cũng có thể là một sự kiện nào đó xảy ra ngoài GitHub.

0 0 80

- vừa được xem lúc

Cấu hình CI/CD với Github (phần 1): Một ít lý thuyết

CI/CD là gì. Về mặt khái niệm là vậy nhưng về mặt triển khai thì CI/CD là quá trình tự động thực hiện các quá trình build, test, release, deploy khi có các trigger như commit/merge code lên một branch định sẵn hoặc có thể là tự động chạy theo một lịch cố định.

0 0 128

- vừa được xem lúc

Giới thiệu về Git LFS

. Git LFS là gì . Git LFS làm điều này bằng cách thay thế các tệp lớn trong repo của bạn bằng một con trỏ nhỏ.

0 0 37

- vừa được xem lúc

Git workflow được Google và Facebook sử dụng có gì hay ho

Với developer thì Git hẳn là công cụ rất quen thuộc và không thể thiếu rồi. Thế nhưng có mấy ai thực sự hiểu được Git.

0 0 85