Tạo nhánh trong git và quản lý nhánh

Trong repo của bạn ở github, bạn cần giữ nhánh chính sạch sẽ, nghĩa là không có bất kì sự thay đổi nào.

Khi bạn thực hiện một pull request trên nhánh, bạn có thể tiếp tục làm việc với nhánh khác và thực hiện một pull request khác trên nhánh khác này.

Trước khi tạo một nhánh mới, pull những thay đổi từ upstream. Nhánh master trên local cần được cập nhật.

Tạo một nhánh trên máy local và chuyển sang nhánh này:

$ git checkout -b [ten_nhanh_moi]

Thay đổi nhánh làm việc :

$ git checkout [ten_nhanh_moi]

Đẩy nhánh lên github :

$ git push origin [ten_nhanh_moi]

Khi bạn muốn commit một vài thứ trong nhánh, hãy chắc chắn rằng bạn đang ở trong nhánh đó. Thêm tham số -u để thiết lập upstream.

Bạn có thể thấy tất cả các nhánh bằng câu lệnh :

$ git branch

Nó sẽ hiện ra tương tự thế này :

  • *[ten_nhanh_moi]
    master
    

    Thêm một remote mới cho nhánh:

    ```

$ git remote add [ten_remote]


Đẩy những thay đổi từ commit vào trong nhánh:

$ git push [tem_remote_moi][ten_nhanh]



Cập nhật nhánh của bạn khi nhánh gốc từ repo chính đã được cập nhật:

$ git fetch [ten_remote]


Sau đó bạn cần áp dụng sự thay đổi, nếu nhánh của bạn có nguồn gốc từ nhánh master bạn làm như sau :

$ git checkout branch-name $ git checkout master $ git merge branch-name


Xóa nhánh trên file hệ thống local:

$ git branch -d [ten_nhanh_moi]


Cưỡng chế xóa nhánh local trên hệ thống file:

$ git branch -D [ten_nhanh_moi]


Xóa nhánh trên github:

$ git push origin :[ten_nhanh_moi]


Clone một nhánh nào đó không phải là nhánh master từ remote repo

nếu chưa có nhánh master thì clone nhánh master hoặc một nhánh nào đó từ repo đó

git clone –branch first URL localrepo

sau đó fetch những nhánh còn lại

git fetch origin second:second third:third

hoặc dùng vòng lặp

cd localrepo for branch in second third etc; do git fetch origin $branch:$branch done

Kiểm tra remote repo có bao nhiêu nhánh

git remote show origin ```


Tham khảo: https://github.com/Kunena/Kunena-Forum/wiki/Create-a-new-branch-with-git-and-manage-branches