Quản lý nhánh trong Git

Duới đây là các thông tin và kiến thức về chủ đề Xóa một nhánh hay nhất do chính tay đội ngũ chúng tôi biên soạn và tổng hợp:

Hoạt động nhánh cho phép tạo các tuyến khác nhau của sự phát triển. Chúng ta có thể sử dụng hoạt động này để phân nhánh tiến trình phát triển vào hai hướng khác nhau. Ví dụ, chúng tôi công bố một sản phẩm phiên bản 6 và chúng tôi muốn tạo ra một nhánh để phát triển các tính năng 7.0 mà có thể được giữ cách biệt với sự sửa lỗi trong phiên bản 6.0.

Tạo nhánh

Tom tạo một nhánh mới bằng cách sử dụng lệnh git branch . Chúng ta có thể tạo một nhánh mới từ một nhánh đã tồn tại. Chúng ta có thể sử dụng một commit hoặc một thẻ cụ thể như là điểm bắt đầu. Nếu bất kỳ ID commit cụ thể nào không được cung cấp, thì khi đó nhánh sẽ được tạo ra với HEAD như là điểm bắt đầu.

[jerry@CentOS src]$ git branch new_branch[jerry@CentOS src]$ git branch* masternew_branch

Một nhánh mới được tạo ra; Tom sử dụng lệnh git branch để liệt kê các nhánh có sẵn. Git chỉ một dấu hoa thị trước khi kiểm tra nhánh hiện tại.

Hình dưới đây miêu tả hoạt động tạo nhánh:

Chuyển đổi giữa các nhánh

Jerry sử dụng lệnh git checkout để chuyển đổi giữa các nhánh:

[jerry@CentOS src]$ git checkout new_branchSwitched to branch 'new_branch'[jerry@CentOS src]$ git branchmaster* new_branch

Cách tắt để tạo nhánh và chuyển đổi giữa các nhánh

Ở ví dụ trên, chúng ta đã sử dụng hai lệnh riêng rẽ để tạo và chuyển đổi giữa các nhánh. Git cung cấp tùy chọn -b với lệnh checkout; hoạt động này tạo một nhánh mới và ngay lập tức chuyển đổi đến nhánh mới.

[jerry@CentOS src]$ git checkout -b test_branchSwitched to a new branch 'test_branch'[jerry@CentOS src]$ git branchmasternew_branch* test_branch

Xóa một nhánh

Một nhánh có thể được xóa bằng cách sử dụng tùy chọn -D với lệnh git branch. Nhưng trước khi xóa một nhánh đang tồn tại, bạn chuyển tới nhánh khác.

Jerry hiện tại đang trên nhánh test_branch và anh ta muốn dỡ bỏ nhánh đó. Vì thế anh ta chuyển sang nhánh khác và xóa nhánh như dưới đây:

[jerry@CentOS src]$ git branchmasternew_branch* test_branch[jerry@CentOS src]$ git checkout masterSwitched to branch 'master'[jerry@CentOS src]$ git branch -D test_branchDeleted branch test_branch (was 5776472).

Bây giờ, Git sẽ chỉ có hai nhánh.

[jerry@CentOS src]$ git branch* masternew_branch

Đặt lại tên cho một nhánh

Jerry quyết định thêm sự hỗ trợ cho các ký tự rộng rãi trong dự án các chuỗi hoạt động của anh ta. Anh ta đã tạo một nhánh mới, nhưng tên nhánh không được cung cấp chính xác. Vì thế anh ta thay đổi tên nhánh bằng cách sử dụng tùy chọn -m theo sau bởi old branch name và new branch name.

[jerry@CentOS src]$ git branch* masternew_branch[jerry@CentOS src]$ git branch -m new_branch wchar_support

Bây giờ, lệnh git branch sẽ chỉ tên nhánh mới.

[jerry@CentOS src]$ git branch* masterwchar_support

Sáp nhập hai nhánh

Jerry thực hiện một chức năng để trả lại độ dài chuỗi của một chuỗi ký tự rộng. Một code mới sẽ xuất hiện như dưới đây:

[jerry@CentOS src]$ git branchmaster* wchar_support[jerry@CentOS src]$ pwd/home/jerry/jerry_repo/project/src[jerry@CentOS src]$ git diff

Lệnh trên sẽ tạo ra kết quả sau:

t a/src/string_operations.c b/src/string_operations.cindex 8ab7f42..8fb4b00 100644--- a/src/string_operations.c+++ b/src/string_operations.[email protected]@ -1,4 +1,14 @@#include <stdio.h>+#include <wchar.h>++size_t w_strlen(const wchar_t *s)+{ + const wchar_t *p = s; + + while (*p) + ++p; + return (p - s); +}

Sau khi kiểm tra, anh ta commit và push những thay đổi của anh ta tới nhánh mới.

[jerry@CentOS src]$ git status -sM string_operations.c?? string_operations[jerry@CentOS src]$ git add string_operations.c[jerry@CentOS src]$ git commit -m 'Added w_strlen function to return string lenght of wchar_tstring'[wchar_support 64192f9] Added w_strlen function to return string lenght of wchar_t string1 files changed, 10 insertions(+),  deletions(-)

Ghi chú rằng Jerry đang push những thay đổi này tới nhánh mới, đó là tại sao anh ta sử dụng nhánh tên là wchar_support thay cho nhánh master.

[jerry@CentOS src]$ git push origin wchar_support   <−−− Observer branch_name

Lệnh trên sẽ tạo ra kết quả sau:

Counting objects: 7, done.Compressing objects: 100% (4/4), done.Writing objects: 100% (4/4), 507 bytes, done.Total 4 (delta 1), reused  (delta )To [email protected]:project.git* [new branch]wchar_support -> wchar_support

Sau khi commit những thay đổi, nhánh mới sẽ xuất hiện như sau:

Xem thêm:  Top 20 đình trọng bao nhiêu tuổi mới nhất 2022

Tom tò mò về những gì Jerry đang làm trong nhánh tư nhân của cậu ta và anh ta kiểm tra log từ nhánh wchar_support.

[[email protected] src]$ pwd/home/tom/top_repo/project/src[[email protected] src]$ git log origin/wchar_support -2

Lệnh trên sẽ tạo ra kết quả sau:

commit 64192f91d7cc2bcdf3bf946dd33ece63b74184a3Author: Jerry Mouse <jerry@tutorialspoint.com>Date: Wed Sep 11 16:10:06 2013 +0530Added w_strlen function to return string lenght of wchar_t stringcommit 577647211ed44fe2ae479427a0668a4f12ed71a1Author: Tom Cat <tom@tutorialspoint.com>Date: Wed Sep 11 10:21:20 2013 +0530Removed executable binary

Bằng cách quan sát các thông báo commit, Tom nhận ra rằng Jerry thực hiện chức năng strlen cho ký tự mở rộng và anh ta muốn có chức năng tương tự trong nhánh master. Thay vì thực hiện lại các bước trên, anh ta quyết định lấy code của Jerry bằng cách sáp nhập nhánh của anh ta với nhánh master.

[tom@CentOS project]$ git branch* master[tom@CentOS project]$ pwd/home/tom/top_repo/project[tom@CentOS project]$ git merge origin/wchar_supportUpdating 5776472..64192f9Fast-forwardsrc/string_operations.c | 10 ++++++++++1 files changed, 10 insertions(+), 0 deletions(-)

Sau hoạt động sáp nhập, nhánh master sẽ xuất hiện như sau:

Bây giờ, nhánh wchar_support đã được nhập với nhánh master. Chúng ta thẩm tra nó bằng cách quan sát thông tin commit hoặc quan sát các chỉnh sửa được thực hiện trong tệp string_operation.c.

[tom@CentOS project]$ cd src/[tom@CentOS src]$ git log -1commit 64192f91d7cc2bcdf3bf946dd33ece63b74184a3Author: Jerry Mouse <jerry@tutorialspoint.com>Date: Wed Sep 11 16:10:06 2013 +0530Added w_strlen function to return string lenght of wchar_t string[tom@CentOS src]$ head -12 string_operations.c</jerry@tutorialspoint.com>

Lệnh trên sẽ tạo ra kết quả sau:

#include <stdio.h>#include <wchar.h>size_t w_strlen(const wchar_t *s){ const wchar_t *p = s;while (*p) ++p;return (p - s);}

Sau khi kiểm tra, anh ta push những thay đổi code của anh ta tới nhánh master.

[[email protected] src]$ git push origin masterTotal  (delta ), reused  (delta )To gituser@git.server.com:project.git5776472..64192f9 master −> master

Rebase các nhánh

Lệnh git rebase là một lệnh sáp nhập nhánh, nhưng điểm khác biệt ở đây là nó chỉnh sửa thứ tự của các commit.

Xem thêm:  Top 19 cd copy protection systems mới nhất 2022

Lệnh git merge cố gắng để đặt các commit từ nhánh khác lên trên đầu của HEAD của nhánh nội bộ hiện tại. Ví dụ, nhánh nội bộ của bạn có các commit A−>B−>C−>D và nhánh sáp nhập có các commit là A−>B−>X−>Y, thì sau đó lệnh git merge sẽ biến đổi nhánh nội bộ hiện tại thành một nhánh giống như A−>B−>C−>D−>X−>Y

Lệnh git rebase cố gắng để tìm ra gốc giữa nhánh nội bộ hiện tại và nhánh sáp nhập. Nó push các commit tới nhánh nội bộ bằng cách chỉnh sửa thứ tự của các commit trong nhánh nội bộ hiện tại. Ví dụ, hai nhánh có các commit như trên, thì lệnh git rebase sẽ chuyển đổi nhánh nội bộ hiện tại thành một nhánh giống như A>B>X>Y>C>D.

Khi có nhiều nhà lập trình cùng làm việc trên một repository từ xa, bạn không thể chỉnh sửa thứ tự của các commit trong repository này. Trong tình huống này, bạn có thể sử dụng hoạt động rebase để đặt các commit nội bộ của bạn trên phần đầu của các commit ở repository từ xa và bạn có thể push những thay đổi.

Theo Tutorialspoint

Bài trước: Hoạt động Patch trong Git

Bài tiếp: Xử lý Conflict trong Git

Các tìm kiếm liên quan tới Quản lý nhánh trong Git :

  • Tác giả: vietjack.com

  • Ngày đăng: 6/1/2022

  • Lượt xem: 2870

  • Xếp hạng: 4 ⭐ ( 63624 lượt đánh giá )

  • Xếp hạng cao nhất: 5 ⭐

  • Xếp hạng thấp nhất: 4 ⭐

  • Tóm tắt: Lệnh git merge cố gắng để đặt các commit từ nhánh khác lên trên đầu của HEAD của nhánh nội bộ hiện tại. Ví dụ, nhánh nội bộ của bạn có các commit A−>B−>C−>D và nhánh sáp nhập có …

  • Tác giả: hoclaptrinh.vn

  • Ngày đăng: 30/3/2022

  • Lượt xem: 70296

  • Xếp hạng: 1 ⭐ ( 29064 lượt đánh giá )

  • Xếp hạng cao nhất: 5 ⭐

  • Xếp hạng thấp nhất: 1 ⭐

  • Tóm tắt: Quản lý nhánh trong Git Hoạt động nhánh cho phép tạo các tuyến khác nhau của sự phát triển. Chúng ta có thể sử dụng hoạt động này để phân nhánh tiến trình phát triển vào hai …

  • Tác giả: lab.skywirex.com

  • Ngày đăng: 2/1/2022

  • Lượt xem: 29042

  • Xếp hạng: 1 ⭐ ( 27907 lượt đánh giá )

  • Xếp hạng cao nhất: 5 ⭐

  • Xếp hạng thấp nhất: 4 ⭐

  • Tóm tắ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 …

  • Tác giả: xuanthulab.net

  • Ngày đăng: 3/3/2022

  • Lượt xem: 77599

  • Xếp hạng: 2 ⭐ ( 48611 lượt đánh giá )

  • Xếp hạng cao nhất: 5 ⭐

  • Xếp hạng thấp nhất: 3 ⭐

  • Tóm tắt: Vài lệnh quản lý nhánh $ git branch #Liệt kê các nhánh $ git branch -v #Liệt kê nhánh + commit cuối $ git branch –merged #Các nhánh merge với nhánh hiện tại $ git branch –no-merged …

  • Tác giả: yunwuxin1.gitbooks.io

  • Ngày đăng: 17/9/2022

  • Lượt xem: 27460

  • Xếp hạng: 4 ⭐ ( 94523 lượt đánh giá )

  • Xếp hạng cao nhất: 5 ⭐

  • Xếp hạng thấp nhất: 2 ⭐

  • Tóm tắt: Quản Lý Các Nhánh Bạn đã tạo mới, tích hợp, và xóa một số nhánh, bây giờ hãy cùng xem một số công cụ giúp việc quản lý nhánh trở nên dễ dàng hơn khi tần suất sử dụng nhánh của bạn …

  • Tác giả: backlog.com

  • Ngày đăng: 14/6/2022

  • Lượt xem: 76966

  • Xếp hạng: 3 ⭐ ( 30272 lượt đánh giá )

  • Xếp hạng cao nhất: 5 ⭐

  • Xếp hạng thấp nhất: 2 ⭐

  • Tóm tắt: Branch là cái dùng để phân nhánh và ghi lại luồng của lịch sử. Branch đã phân nhánh sẽ không ảnh hưởng đến branch khác nên có thể tiến hành nhiều thay đổi đồng thời trong cùng 1 …

  • Tác giả: nthung2112.github.io

  • Ngày đăng: 27/7/2022

  • Lượt xem: 1543

  • Xếp hạng: 4 ⭐ ( 99232 lượt đánh giá )

  • Xếp hạng cao nhất: 5 ⭐

  • Xếp hạng thấp nhất: 4 ⭐

  • Tóm tắt: Để tạo nhánh mới trong Git, bạn dùng lệnh: git checkout -b <tên nhánh mới> [nhánh gốc] Chẳng hạn, để tạo nhánh dev từ master, bạn gõ git checkout -b dev master. Nếu không cung …

  • Tác giả: yunwuxin1.gitbooks.io

  • Ngày đăng: 4/9/2022

  • Lượt xem: 65162

  • Xếp hạng: 1 ⭐ ( 94513 lượt đánh giá )

  • Xếp hạng cao nhất: 5 ⭐

  • Xếp hạng thấp nhất: 3 ⭐

  • Tóm tắt: Để cho rõ ràng, Git không cung cấp kèm bất kỳ hệ thống giám sát vấn đề nào; nhưng bởi vì vấn đề số #53 là cái mà bạn sẽ tập trung vào nên bạn sẽ tạo một nhánh mới để làm việc trên …

  • Tác giả: tedu.com.vn

  • Ngày đăng: 14/2/2022

  • Lượt xem: 33422

  • Xếp hạng: 4 ⭐ ( 94293 lượt đánh giá )

  • Xếp hạng cao nhất: 5 ⭐

  • Xếp hạng thấp nhất: 4 ⭐

  • Tóm tắt: Bài 13: Cách merge nhánh và xử xung đột (Conlicts) trong GIT. 14. Bài 14: Quản lý nhánh trong GIT. 15. Bài 15: Workflow làm việc với nhánh trong GIT. 16. Bài 16: Làm việc với …

Back to top button