Lỗi git format về unix khi pull code năm 2024

Giới thiệu

Trong bài viết này chúng ta sẽ tập trung vào khả năng tích hợp code(gộp code) từ nhánh staging sang nhánh production, nó giống như việc chúng ta phát triển tính năng trên một nhánh riêng sau đó đưa tính năng đó vào nhánh làm việc chung.

Chuẩn bị

  • Đã hoàn thành bài trước.
  • Terminal kết nối SSH tới máy git checkout staging

    echo "implement new feature: manage cart" > feature.txt

    xem nội dung tệp tin

    cat feature.txt

    Tạo commit mới

    git add feature.txt git status git commit -am "new feature: manage cart"

    0
  • Đã có git checkout staging

    echo "implement new feature: manage cart" > feature.txt

    xem nội dung tệp tin

    cat feature.txt

    Tạo commit mới

    git add feature.txt git status git commit -am "new feature: manage cart"

    1 trên

    git checkout staging

    echo "implement new feature: manage cart" > feature.txt

    xem nội dung tệp tin

    cat feature.txt

    Tạo commit mới

    git add feature.txt git status git commit -am "new feature: manage cart"

    2 (Bài viết sử dụng

    git checkout staging

    echo "implement new feature: manage cart" > feature.txt

    xem nội dung tệp tin

    cat feature.txt

    Tạo commit mới

    git add feature.txt git status git commit -am "new feature: manage cart"

    3).

Nội dung

Chúng ta tạo ra nhánh production, nơi đây được coi là nhánh chứa mã nguồn chung của dự án, các thành viên trong nhóm sẽ cùng nhau phối hợp làm việc, đẩy mã nguồn của những chức năng hoàn thiện tới nhánh production.

Tạo nhánh production từ nhánh staging:

`# Chuyển sang làm việc tại không gian của nhánh staging git checkout staging

kiểm tra danh sách tệp tin trên không gian làm việc của nhánh staging

ls -al

tạo nhánh production từ nhánh staging

git branch production

Xem danh sách nhánh

git branch `

Merge code

Các thao tác trong phần này sẽ thực hiện ở local repository first_repo

  1. Tạo commit trên nhánh staging

Giả sử, trên nhánh staging, chúng ta code hùng hục để tạo ra chức năng quản lý giỏ hàng, code của chúng ta đã sẵn sàng tạo

`git checkout staging echo "implement new feature: manage cart" > feature.txt

xem nội dung tệp tin

cat feature.txt

Tạo commit mới

git add feature.txt git status git commit -am "new feature: manage cart" `

9 và đưa tới môi trường production, sẵn sàng cho người dùng sử dụng:

`git checkout staging echo "implement new feature: manage cart" > feature.txt

xem nội dung tệp tin

cat feature.txt

Tạo commit mới

git add feature.txt git status git commit -am "new feature: manage cart" `

Bạn có thể sử dụng thêm lệnh

`# chuyển sang không gian làm việc của nhánh production git checkout production

Kiểm tra danh sách tệp tin trên không gian làm việc của production

ls -al

Thực hiện lấy code từ nhánh staging về nhánh production

git merge staging ls -al `

1 để kiểm tra commit vừa được tạo ra.

  1. Thực hiện merge code từ nhanh staging sang nhánh production

`# chuyển sang không gian làm việc của nhánh production git checkout production

Kiểm tra danh sách tệp tin trên không gian làm việc của production

ls -al

Thực hiện lấy code từ nhánh staging về nhánh production

git merge staging ls -al `

Kết quả của câu lệnh

`# chuyển sang không gian làm việc của nhánh production git checkout production

Kiểm tra danh sách tệp tin trên không gian làm việc của production

ls -al

Thực hiện lấy code từ nhánh staging về nhánh production

git merge staging ls -al `

2 sẽ đưa các commit từ nhánh staging tới nhánh hiện tại`production`).

Bạn hãy sử dụng thêm lệnh

`# chuyển sang không gian làm việc của nhánh production git checkout production

Kiểm tra danh sách tệp tin trên không gian làm việc của production

ls -al

Thực hiện lấy code từ nhánh staging về nhánh production

git merge staging ls -al `

1 để đối chiếu với danh sách lịch sử commit có trong nhánh production với nhánh staging

Pull Request

Pull Request là chức năng của GitHub cung cấp, một cách làm việc nhóm hữu hiệu sẽ sử dụng PR để code có thể được đánh giá, đảm bảo chất lượng mã nguồn của dự án.

Để chuẩn bị, trước hết, chúng ta hãy đẩy những thay đổi ở 2 nhánh staging và production trong local tới remote.

git checkout staging git push origin staging git checkout production git push origin production

Tương tự như kịch bản ở phần Merge code, bạn rất năng suất, trên nhánh staging, bạn đã rất nhanh viết được mã nguồn cho chức năng mới payment gate (cổng thanh toán), giờ bạn cần tạo Pull Request để một con người khác trong bạn sẽ đứng ra công tâm đánh giá mã nguồn mà bạn đã viết trước những dòng mã nguồn này được tích hợp và nhánh chung production.

  1. Tạo comit và push trên nhánh staging

Tạo

`git checkout staging echo "implement new feature: manage cart" > feature.txt

xem nội dung tệp tin

cat feature.txt

Tạo commit mới

git add feature.txt git status git commit -am "new feature: manage cart" `

9 cho tính năng

git checkout staging git push origin staging git checkout production git push origin production

1

git checkout staging git push origin staging git checkout production git push origin production

2

`git checkout staging echo "very fast, implement new feature: payment gate" > feature_payment.txt

xem nội dung tệp tin

cat feature_payment.txt

Tạo commit mới

git add feature_payment.txt git status git commit -am "new feature: payment gateway"

kiểm tra danh git history

git log

đẩy commit tới remote

git push origin staging `

  1. Tạo PR trên github

Bạn vừa mới thêm tính năng payment gate ở nhánh staging, giờ là lúc bạn tự tin nhất, tạo PR trên

git checkout staging git push origin staging git checkout production git push origin production

3 mong muốn đưa các commit từ nhánh staging tới nhánh production.

Mở

git checkout staging git push origin staging git checkout production git push origin production

6 và truy cập FirstProjectGit, chọn menu Pull Request, sau đó ấn nút New pull request

Trong màn hình Comparing changes, đầu của mũi tên, ở phần compare chọn nhánh staging, phía mũi tên hướng tới, base sẽ được chọn là production. Sau khi chọn được 2 nhánh, chúng ta sẽ thấy các thông tin cho sự thay đổi từ nhánh staging tới nhánh production.

  • Màu xanh đại diện cho mã nguồn, tệp tin được thêm mới vào git
  • Màu đỏ đại diện cho mã nguồn, tệp tin bị xóa bỏ khỏi git

Tiếp đó, ấn nút Create pull request

Màn hình sẽ chuyển sang phần thêm các thông tin khác: tên của PR, mô tả cho PR, thành viên tham gia review, gán công việc merge pull request cho thành viên nào,…

Sau đó ấn nút Create pull request, màn hình thông tin của PR hiển thị:

  1. Merge Pull Request

PR đã được tạo, giờ là con người khác của chúng ta lộ diện, bạn sẽ săm soi từng dòng mã nguồn trước khi thực hiện merge những thay đổi từ nhánh staging tới nhánh production

Trong repo FirstProjectGit trên Github, chọn menu Pull request để xem danh sách các PR và sau đó ấn vào PR được tạo ở bước trước:

Màn hinh chi tiết của PR hiện ra, bạn hãy săm xoi tiêu đề và nội dung của PR(commit, files changed)

Sau một hồi miệt mài review code, bạn thấy code của bạn viết ok đó, bạn sẽ thực hiện merge pull request bằng cách ấn vào nút Merge pull request -> xác nhận merge bằng cách ấn nút confirm merge

Sau khi merge thành công bạn hãy kiểm tra mã nguồn trên nhánh production đã có code mới từ staging hay chưa.

Tác giả: Đỗ Thiên Giang

Chú ý: Tất cả các bài viết trên TEDU.COM.VN đều thuộc bản quyền TEDU, yêu cầu dẫn nguồn khi trích lại trên website khác.

Chủ đề