Git flow

So sánh chi tiết giữa Bitbucket vs Github và Gitlab

Body

Các dự án phát triển phần mềm dựa trên tinh thần đồng đội. Tất cả các thành viên phải biết những gì những người khác đang làm và tự do truy cập mã do đồng nghiệp của họ viết. Có thể thực hiện được với hệ thống kiểm soát phiên bản - phần mềm cho phép ghi lại các thay đổi trong mã và tải lên các phiên bản mới.

Dòng chảy Git - Đã có Commit, tại sao vẫn phải Push?

Body

Những người từng lập trình trong thập kỷ 2000-2010 ắt hẳn sẽ thắc mắc vì sao Git lại rối rắm như vậy? Vì sao không commit code thẳng lên remote repository mà phải qua trung gian local repository.

Commit là chuyển hàng ra bến cảng, cửa khẩu. Push là xuất khẩu hàng ra khỏi biên giới

Commit vs push

 

Dòng chảy Git - Quản lý kho dữ liệu riêng với lệnh git Stash

Body

Đôi khi bạn muốn chuyển đổi các nhánh, nhưng bạn đang thực hiện một phần chưa hoàn thành trong dự án hiện tại của mình. Bạn không muốn thực hiện commit hoàn thành một nửa công việc. Git stashing cho phép bạn làm như vậy. Lệnh git stash cho phép bạn chuyển đổi các nhánh mà không cần commit nhánh hiện tại.

Stash giống như "Tạm nhập, tái xuất"

Hình dưới đây minh họa các thuộc tính và vai trò của lưu trữ liên quan đến kho lưu trữ và thư mục làm việc.

Dòng chảy Git - Patch file là gì?

Body

Sử dụng git tạo patch file

Trong quá trình làm việc chung trên một source code chúng ta phải thường xuyên trao đổi với nhau về những thay đổi của source code. Đối với git chúng ta hay sử dụng việc đóng gói những thay đổi vào các commit và share cho các thành viên khác trong team. Tuy nhiên đôi khi chúng ta vì lý do nào đó mà không thể push lên repo chung. Khi đó việc dùng patch file là cực kì quan trọng và thuận lợi, chúng ta có thể trao đổi thông qua việc gửi email, share file. Thậm chí có thể quan sát các thay đổi trong từng file.

Dòng chảy Git - Những lệnh Git hữu ích nhất cho lập trình viên

Body

Update và merge branch hiện tại với một remote repo

cd repo/ git pull origin master

với origin là remote repo, master là remote branch.

Nếu bạn không muốn merge những thay đổi của bạn, hãy sử dụng git fetch

Liệt kê các remote urls

git remote -v

Kết quả:

origin  https://gitlab.com/tigosoftware/business-portal.git (fetch)
origin  https://gitlab.com/tigosoftware/business-portal.git (push)

Dòng chảy Git - Vẽ bản đồ git với Gource Visualization

Body

Gource là một công cụ vẽ bản đồ gitlog của bất kỳ dự án nào có quản lý source code bằng Source Control. Tương tự như các công cụ BI Visualization khai thác tập dữ liệu lớn. 

Tuy vậy để dùng Gource, bạn cần trả tiền để được thưởng thức nghệ thuật này.

 

Dòng chảy Git - Đưa code về nơi bạn muốn

Body
Git là một trong những Hệ thống Quản lý Phiên bản Phân tán, được phát triển nhằm quản lý mã nguồn (source code) Trên Git, ta có thể lưu trạng thái của file dưới dạng lịch sử cập nhật. Nhờ mô hình Git, lập trình viên có thể reset file đã chỉnh sửa về trạng thái cũ hay kiểm tra được file đã được chỉnh sửa ở những chỗ nào, sửa bỏi ai.

Dòng chảy Git - Merge squash là gì?

Body

Một thuật ngữ khó nhớ phải không?

Merge squash - Nén cho phẳng, không phải "quất" hô biến lịch sử commit

Khoan đã, bạn đừng vội đọc nó là "Quất" nhé, nó không có nghĩa như chính từ tiếng Việt đó. Squash chỉ đơn giản là gói lại và hợp nhất một branch nào đó với các thay đổi của bạn trước khi merge vào nhánh thượng nguồn (upstream).

Dòng chảy Git - Merge và Rebase khác nhau như thế nào?

Body

Khác biệt cơ bản nhất là "dòng chảy". Merge có nghĩa là nhánh (sông) con nhập vào nhánh mẹ, còn rebase là dòng chảy từ sông mẹ đổ ra các nhánh con. Rất dễ hiểu phải không?

Một cách hiểu khác: Merge là đồng bộ từ dưới lên, còn rebase là đồng bộ từ trên xuống.

Thuật ngữ của team TIGO khi phân biệt 2 khái niệm này: