Cách kéo các thay đổi từ nhánh này sang nhánh khác trong Git

How Pull Changes From One Branch Another Git



Kho lưu trữ git chứa một hoặc nhiều nhánh để quản lý mã một cách hiệu quả. Đôi khi, người dùng git cần phải làm việc với nhiều nhánh đồng thời và yêu cầu chuyển từ nhánh này sang nhánh khác với các thay đổi được thực hiện trong nhánh trước sang nhánh hiện tại trước khi commit. Tác vụ này có thể được thực hiện bằng cách sử dụng nhiều cách trong git. Lệnh stash có thể được sử dụng từ terminal và lệnh merge từ GitHub Desktop để kéo các thay đổi từ nhánh này sang nhánh khác trong hướng dẫn này.

Điều kiện tiên quyết

1. Cài đặt GitHub Desktop
GitHub Desktop giúp người dùng git thực hiện các tác vụ liên quan đến git bằng đồ thị. Bạn có thể dễ dàng tải xuống trình cài đặt mới nhất của ứng dụng này cho Ubuntu từ github.com. Bạn phải cài đặt và cấu hình ứng dụng này sau khi tải xuống để sử dụng nó. Bạn cũng có thể xem hướng dẫn cài đặt GitHub Desktop trên Ubuntu để biết quá trình cài đặt đúng cách.







2. Tạo tài khoản GitHub
Bạn sẽ yêu cầu tạo tài khoản GitHub để kiểm tra giao diện của kho lưu trữ từ xa sau khi xuất bản thay đổi của kho lưu trữ cục bộ.



3. Tạo kho lưu trữ cục bộ
Bạn phải tạo một kho lưu trữ cục bộ để kiểm tra các lệnh được sử dụng trong hướng dẫn này.



Sử dụng lệnh stash

Kho lưu trữ cục bộ có tên PHP2 đã được sử dụng trong hướng dẫn này để chỉ ra cách kéo các thay đổi từ nhánh này sang nhánh khác của kho lưu trữ. Tạo một tệp có tên index.html trong kho lưu trữ. Mở thiết bị đầu cuối và đi đến thư mục kho lưu trữ. Chạy các lệnh sau để kiểm tra danh sách nhánh, chuyển sang nhánh chính và hiển thị trạng thái của nhánh.





chi nhánh $ git
$ git tổng thể thanh toán
trạng thái $ git

Kết quả sau sẽ xuất hiện sau khi thực hiện lệnh trên. Kết quả cho thấy rằng kho chứa hai nhánh và chính chi nhánh đã hoạt động ban đầu. Sau khi chuyển sang bậc thầy nhánh, đầu ra của trạng thái cho thấy nhánh hiện tại đang hoạt động và index.html tệp không được theo dõi.



Chạy các lệnh sau để theo dõi tệp chưa được theo dõi và kiểm tra lại trạng thái của kho lưu trữ git.

$ git thêm index.html
trạng thái $ git

Kết quả sau sẽ xuất hiện sau khi thực hiện các lệnh trên. Đầu ra của trạng thái cho thấy rằng index.html tệp được thêm vào kho lưu trữ nhưng cần phải cam kết.

Chạy các lệnh sau và kiểm tra lại trạng thái của kho lưu trữ git. Lệnh `git stash` hoạt động giống như lệnh` git commit`. Thư mục làm việc của kho lưu trữ sẽ được làm sạch sau khi thực hiện lệnh này.

$ git stash
trạng thái $ git

Kết quả sau sẽ xuất hiện thực hiện các lệnh trên.

Sau khi chạy lệnh stash cho một nhánh, nếu người dùng git muốn kéo các thay đổi của nhánh đó sang một nhánh khác, có thể thực hiện dễ dàng bằng cách sử dụng lệnh `git stash pop` hoạt động giống như lệnh` git merge`. Chạy các lệnh sau để chuyển thành chính phân nhánh và kéo các thay đổi từ bậc thầy chi nhánh đến chủ chốt chi nhánh.

$ git thanh toán chính
$ git stash pop

Kết quả sau sẽ xuất hiện sau khi thực hiện lệnh trên cho thấy rằng nhánh hiện tại là chủ chốtindex.html tệp được thêm vào nhánh này.

Chạy lệnh sau để thực hiện tác vụ trước đó với thông báo cam kết và kiểm tra lại trạng thái.

$ git commit -m 'đã thêm tệp chỉ mục'
trạng thái $ git

Kết quả sau sẽ xuất hiện sau khi thực hiện các lệnh trên. Đầu ra của trạng thái cho thấy rằng cây làm việc hiện đã sạch sau khi cam kết.

Nếu các thay đổi của kho lưu trữ cục bộ được đẩy đến kho lưu trữ từ xa và kho lưu trữ từ xa được mở từ github.com, thì kho lưu trữ sẽ giống như hình sau.

Sử dụng lệnh hợp nhất

Phần này của hướng dẫn này chỉ ra một cách khác để kéo các thay đổi từ nhánh này sang nhánh khác. Kho lưu trữ cục bộ có tên Đọc tài liệu đã sử dụng ở đây. Tạo một tệp có tên read.php trong vị trí kho lưu trữ. Chạy các lệnh sau để chuyển sang nhánh chính, thêm tệp read.php và thực hiện nhiệm vụ. Lệnh rẽ nhánh sẽ hiển thị danh sách chi nhánh. Lệnh checkout sẽ chuyển nhánh sang master. Lệnh trạng thái sẽ hiển thị trạng thái hiện tại của chi nhánh. Lệnh add sẽ thêm tệp chưa được theo dõi vào kho lưu trữ. Lệnh cam kết sẽ xác nhận nhiệm vụ.

chi nhánh $ git
$ git tổng thể thanh toán
trạng thái $ git
$ git thêm read.php
$ git commit -m 'Đã thêm tập lệnh đọc'

Kết quả sau sẽ xuất hiện sau khi thực hiện các lệnh trên. Tệp read.php đã được thêm vào nhánh chính của kho lưu trữ và nhiệm vụ cũng đã được cam kết.

Sau khi hoàn thành tác vụ trên, nếu các thay đổi được thực hiện trong bậc thầy chi nhánh yêu cầu chuyển vào chủ chốt chi nhánh, sau đó sự hợp nhất lệnh có thể được sử dụng để thực hiện nhiệm vụ này. Lệnh hợp nhất có thể được sử dụng từ thiết bị đầu cuối hoặc bằng ứng dụng GitHub Desktop. Cách sử dụng GitHub Desktop để hợp nhất các nhánh đã được trình bày trong phần này của hướng dẫn. Mở kho lưu trữ cục bộ trong GitHub Desktop. Mở hộp thoại danh sách chi nhánh bằng cách nhấp vào danh sách chi nhánh từ Quan điểm menu và chọn chủ chốt nhánh là nhánh hoạt động. Bây giờ, hãy nhấp vào Hợp nhất vào chi nhánh hiện tại… từ Chi nhánh thực đơn. Chọn bậc thầy nhánh từ hộp thoại và nhấp vào Hợp nhất cái chính vào cái chính để kéo các thay đổi của bậc thầy chi nhánh vào chính chi nhánh. Bạn có thể xóa bậc thầy nhánh sau khi hoàn thành thao tác hợp nhất nếu nhánh không yêu cầu kho lưu trữ.

Phần kết luận

Hai cách khác nhau để kéo các thay đổi từ nhánh này sang nhánh khác đã được trình bày trong hướng dẫn này bằng cách sử dụng hai kho lưu trữ cục bộ demo. Các cấtđi các lệnh của git đã được sử dụng ở đây để thực hiện tác vụ. GitHub Desktop đã được sử dụng trong hướng dẫn này để hiển thị cách hợp nhất các nhánh bằng đồ thị.