Nếu nhóm phát triển của bạn sử dụng Git, cuối cùng bạn sẽ cần kiểm tra công việc của người khác dưới dạng một nhánh từ một kho lưu trữ từ xa. Giống như hầu hết các hành động nhánh trong Git, việc chuyển sang một nhánh từ xa thực sự khá đơn giản.
Git, Chi nhánh và Điều khiển từ xa
Tìm chi nhánh địa phương của bạn
Kiểm tra chi nhánh từ xa
Xử lý xung đột tên
Xử lý nhiều kho lưu trữ từ xa
Trước khi bạn thanh toán
Git, Chi nhánh và Điều khiển từ xa
Triết lý Git là phân nhánh thường xuyên. Các nhánh cho phép quá trình phát triển diễn ra mà không làm thay đổi cơ sở mã chính. Khi bạn hài lòng rằng mã mới, đã kiểm tra của mình đã sẵn sàng, bạn hợp nhất nhánh mới của mình vào một nhánh khác. Thông thường, đây là nhánh chính hoặc nhánh chính, nhưng bạn có thể hợp nhất hai nhánh bất kỳ.
Do tính linh hoạt này, cũng như cách Git xử lý các nhánh và hợp nhất nhẹ nhàng và nhanh chóng, nên việc phân nhánh đã được chuyển đổi. Trong các hệ thống kiểm soát phiên bản cũ hơn, việc phân nhánh là một vấn đề lớn. Phân nhánh và hợp nhất chậm và dễ bị lỗi. Git mang đến cho các nhà phát triển khả năng phân nhánh nhanh chóng, dễ dàng được sử dụng để củng cố nhiều quy trình công việc khác nhau.
Nếu bạn làm việc hoặc tình nguyện với tư cách là một phần của nhóm phát triển sử dụng Git, thì bạn sẽ có một kho lưu trữ Git “trung tâm”, ở xa máy tính của mỗi kỹ sư phần mềm. Đây được gọi là kho lưu trữ từ xa, hay chỉ là “điều khiển từ xa”. Đó là nơi các cam kết và thay đổi đối với kho lưu trữ cục bộ của bạn được gửi khi bạn thực hiện thao tác đẩy.
Tất nhiên, đó cũng là điều mà các nhà phát triển khác đang làm. Điều này làm cho nó dễ dàng để cộng tác. Nếu bạn cần truy cập công việc của nhà phát triển khác, bạn chỉ cần truy xuất mã của họ từ một nhánh trên kho lưu trữ từ xa. Nếu họ cần truy cập công việc của bạn, họ sẽ truy xuất mã của bạn từ một nhánh trên kho lưu trữ theo dõi một trong các nhánh cục bộ của bạn.
Trong Git, một dự án phát triển có thể có nhiều điều khiển từ xa. Tuy nhiên, một nhánh cục bộ chỉ có thể theo dõi một nhánh từ xa. Vì vậy, miễn là bạn đang làm việc với điều khiển từ xa phù hợp, việc kiểm tra một nhánh từ xa với nhiều điều khiển từ xa cũng giống như sử dụng một điều khiển từ xa.
Tìm chi nhánh địa phương của bạn
Bạn cần tránh xung đột tên. Nếu bạn có một chi nhánh địa phương có cùng tên với chi nhánh từ xa mà bạn sẽ kiểm tra, bạn có hai lựa chọn. Bạn có thể đổi tên chi nhánh địa phương của mình và kiểm tra chi nhánh từ xa. Theo cách đó, nhánh cục bộ của bạn theo dõi nhánh từ xa có cùng tên với nhánh từ xa. Hoặc, bạn có thể kiểm tra nhánh từ xa và yêu cầu Git tạo nhánh theo dõi cục bộ với tên mới.
Để tìm ra tên của các nhánh trong kho lưu trữ cục bộ của bạn, hãy sử dụng git branch
yêu cầu.
git branch
Kho lưu trữ cục bộ này có một nhánh chính và ba nhánh khác. Dấu hoa thị cho biết đó là nhánh hiện tại. Di chuyển từ chi nhánh này sang chi nhánh khác yêu cầu kiểm tra chi nhánh bạn muốn làm việc.
git checkout new-feature
git status
Lệnh đầu tiên thay đổi nhánh cho chúng ta, để “tính năng mới” là nhánh hiện tại. Các git status
lệnh xác minh điều đó cho chúng tôi.
Chúng tôi có thể nhảy qua lại giữa các nhánh, thực hiện các thay đổi mới, lấy các bản cập nhật từ điều khiển từ xa và đẩy các bản cập nhật cục bộ vào điều khiển từ xa.
Kiểm tra chi nhánh từ xa
Có một nhánh trên kho lưu trữ từ xa không có trên máy của chúng tôi. Một nhà phát triển tên là Mary đã tạo ra một tính năng mới. Chúng tôi muốn chuyển sang nhánh từ xa đó để chúng tôi có thể xây dựng phiên bản phần mềm đó cục bộ.
Nếu chúng ta thực hiện một fetch
Git sẽ lấy lại siêu dữ liệu từ kho lưu trữ từ xa.
git fetch
Bởi vì đây là lần đầu tiên fetch
chúng tôi đã hoàn thành kể từ khi Mary đẩy nhánh của cô ấy đến kho lưu trữ từ xa, Chúng tôi được thông báo rằng có một nhánh mới có tên là “origin/mary-feature”. Tên mặc định cho kho lưu trữ từ xa đầu tiên được thêm vào dự án là “origin”.
Cho dù chúng tôi có thấy thông báo này hay không, chúng tôi luôn có thể yêu cầu Git liệt kê các nhánh trong kho lưu trữ từ xa.
Các -r
(từ xa) yêu cầu Git báo cáo về các nhánh trên kho lưu trữ từ xa.
git branch -r
Điểm cần lưu ý ở đây là Git đang kiểm tra địa phương bản sao siêu dữ liệu của điều khiển từ xa. Đó là lý do tại sao chúng tôi đã sử dụng git fetch
lệnh để đảm bảo bản sao cục bộ của siêu dữ liệu được cập nhật.
Khi chúng tôi phát hiện ra chi nhánh mà chúng tôi muốn, chúng tôi có thể tiếp tục và kiểm tra nó. chúng tôi sử dụng git checkout
lệnh với -b
(nhánh), tiếp theo là tên chúng tôi sẽ sử dụng cho nhánh cục bộ, tiếp theo là tên của nhánh từ xa.
git checkout -b mary-feature origin/mary-feature
Chúng tôi có thể thấy rằng chúng tôi đã kiểm tra nhánh từ xa và tạo một nhánh cục bộ sẽ theo dõi các thay đổi trong nhánh từ xa.
git branch
Chi nhánh địa phương mới của chúng tôi hiện là chi nhánh làm việc hiện tại của chúng tôi.
Xử lý xung đột tên
Nếu bạn có một nhánh cục bộ có cùng tên với nhánh từ xa, bạn có thể đổi tên nhánh cục bộ của mình trước khi kiểm tra nhánh từ xa hoặc kiểm tra nhánh từ xa và chỉ định một tên nhánh cục bộ khác.
Để kiểm tra nhánh từ xa thành một nhánh cục bộ có tên khác, chúng ta có thể sử dụng cùng một lệnh mà chúng ta đã sử dụng trước đó và chọn một tên nhánh cục bộ mới.
git checkout -b mary-test origin/mary-feature
Điều này tạo ra một nhánh cục bộ có tên là “mary-test” sẽ theo dõi các cam kết cục bộ đối với nhánh đó. Các lần đẩy sẽ đi đến nhánh “origin/mary-feature” từ xa.
Đây có lẽ là cách tốt nhất để xử lý xung đột tên cục bộ. Nếu bạn thực sự muốn giữ nguyên tên của nhánh cục bộ và nhánh từ xa, bạn cần đổi tên nhánh cục bộ của mình trước khi kiểm tra điều khiển từ xa. Đổi tên một nhánh là chuyện nhỏ trong Git.
git branch -m mary-feature old-mary-branch
Bây giờ bạn có thể kiểm tra nhánh “origin/mary-feature” từ xa.
Xử lý nhiều kho lưu trữ từ xa
Nếu bạn có nhiều kho lưu trữ từ xa được định cấu hình, bạn cần lưu ý rằng bạn đang làm việc với kho lưu trữ thích hợp khi kiểm tra nhánh từ xa.
Để liệt kê các kho lưu trữ từ xa của bạn, hãy sử dụng remote
lệnh với -v
(xem) tùy chọn.
git remote -v
Để xem tất cả các nhánh có sẵn, chúng tôi cần tìm nạp siêu dữ liệu từ tất cả các điều khiển từ xa, sau đó liệt kê các nhánh từ xa.
git fetch --all
git branch --all
Chúng ta có thể thấy nhánh mà chúng ta muốn nằm trong điều khiển từ xa “origin”. Lệnh để kiểm tra có cùng định dạng mà chúng ta đã sử dụng. Chúng ta cần chỉ định tên từ xa, “origin”, cũng như tên nhánh, “mary-feature”.
git checkout -b mary-feature origin/mary-feature
Trước khi bạn thanh toán
Trước khi bạn thanh toán, hãy ghi nhớ một số điều và bạn sẽ ổn thôi.
Hãy chắc chắn rằng bạn tránh đụng độ tên. Nếu bạn có một nhánh cục bộ có cùng tên với nhánh từ xa, hãy quyết định xem bạn sẽ đổi tên nhánh cục bộ hay tạo một nhánh có tên khác để theo dõi nhánh từ xa.
Nếu bạn sử dụng nhiều kho điều khiển từ xa, hãy đảm bảo rằng bạn sử dụng đúng điều khiển từ xa.