Làm việc đồng thời trên nhiều nhánh trong một kho lưu trữ duy nhất
Trong một thế giới hoàn hảo, mọi nhà phát triển nên tập trung vào một nhiệm vụ hoặc câu chuyện duy nhất, không phải chuyển đổi giữa các bối cảnh khác nhau. Hãy đối mặt với nó, điều đó hiếm khi xảy ra ngày nay. May mắn thay, git có công cụ hoàn hảo trong kho vũ khí của nó, cho phép các nhà phát triển làm việc đồng thời trên nhiều nhánh mà không cần phải di chuyển qua lại. Công cụ được đề cập là git worktree.
Yêu cầu:
Để bắt đầu một cây công việc, bạn cần một kho lưu trữ đã khởi tạo, tùy chọn với nhiều nhánh.
Ví dụ: hãy xem xét một kho lưu trữ có ba nhánh. list-users-API, một nhánh tính năng tình cờ là nhánh hoạt động hiện tại, mainnhánh đó và user-unable-to-edit-content, một nhánh lỗi bổ sung. Một tình huống có thể xảy ra là nhánh lỗi không vượt qua được quá trình xem xét mã và cần phải thay đổi thêm. Có một số cách chúng ta có thể tiến hành từ đây:
- Bỏ tất cả tiến trình của chúng tôi và chuyển sang nhánh lỗi để áp dụng các thay đổi cần thiết.
- Sao chép kho lưu trữ vào một thư mục khác và giải quyết vấn đề mà không cần phải lưu trữ, nhưng hãy đầu tư một lượng thời gian đáng kể vào quá trình này.
- Cách tiếp cận thứ ba và cũng là cách cuối cùng là sử dụng git worktree, giữ lại tiến trình hiện tại của chúng ta trên nhánh tính năng và tránh chuyển đổi hoàn toàn.
Thực hiện:
Để bắt đầu, hãy sử dụng lệnh sau để khởi tạo một worktree :
$ git worktree add <path> [<commit-ish>]
Nếu bạn sử dụng git branchngay bây giờ, bạn sẽ thấy một +biểu tượng, có tiền tố là tên chi nhánh. Để bắt đầu sử dụng worktree, tất cả những gì chúng ta phải làm là mở thư mục mới bên trong kho lưu trữ với IDE mà chúng ta chọn. Giờ đây, chúng tôi có thể đẩy các thay đổi vào nhánh lỗi cùng với việc phát triển tính năng mới. Khi chúng tôi hoàn thành các thay đổi, chúng tôi có thể xóa worktree bằng cách sử dụng:
$ git worktree remove <worktree>
Git worktree là một công cụ tiện dụng, giúp tăng cường tính linh hoạt và tiết kiệm một lượng thời gian đáng kể. Nó cho phép làm việc trên hai hoặc nhiều nhánh mà không cần phải lưu trữ hoặc cam kết mã chưa hoàn thành. Tôi hy vọng bài viết này đã giúp ích và sẽ tăng năng suất của bạn. Vui lòng cung cấp bất kỳ phản hồi nào mà bạn cho là đáng chia sẻ trong phần nhận xét!

![Dù sao thì một danh sách được liên kết là gì? [Phần 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































