Thực hiện dòng công việc fork

Đã hoàn thành

Fork là một bản sao của một kho. Phân nhánh kho lưu trữ cho phép bạn thử nghiệm các thay đổi một cách tự do mà không ảnh hưởng đến dự án gốc.

Thông thường, fork được sử dụng để đề xuất thay đổi dự án của người khác hoặc sử dụng dự án của người khác làm điểm khởi đầu cho ý tưởng của bạn.

Nhánh là một bản sao hoàn chỉnh của một kho, bao gồm tất cả các tệp, cam kết và (tùy chọn) nhánh.

Nhánh là một cách tuyệt vời để hỗ trợ dòng công việc Nguồn Bên trong: bạn có thể tạo nhánh để đề xuất thay đổi khi bạn không có quyền ghi trực tiếp vào dự án gốc. Khi bạn đã sẵn sàng chia sẻ những thay đổi đó, thật dễ dàng để đóng góp lại chúng bằng cách sử dụng các yêu cầu kéo.

Có gì trong một cái búa?

Một cái n biết đi kèm với tất cả nội dung của kho lưu trữ ngược dòng (gốc) của nó. Bạn có thể bao gồm tất cả các nhánh hoặc giới hạn chúng chỉ trong nhánh mặc định khi bạn tạo nhánh.

Lưu ý quan trọng:

  • Không có quyền, chính sách hoặc quy trình xây dựng nào được sao chép.
  • Các phân bổ mới hoạt động như thể có ai đó nhân bản các kho lưu trữ ban đầu, sau đó đẩy nó vào một kho mới, trống.
  • Sau khi một fork đã được tạo, các tệp, thư mục và nhánh mới không được chia sẻ giữa các kho lưu trữ trừ khi một Pull Request mang chúng theo.

Chia sẻ mã giữa các nhánh

Bạn có thể tạo yêu cầu kéo theo một trong hai hướng: từ fork đến upstream hoặc upstream đến fork. Cách tiếp cận phổ biến nhất là từ ngã ba đến thượng nguồn.

Quyền, chính sách, bản dựng và mục công việc của kho lưu trữ đích sẽ áp dụng cho yêu cầu kéo.

Chọn giữa nhánh và nhánh

  • Nhóm nhỏ (2-5 nhà phát triển): Chúng tôi khuyên bạn nên làm việc trong một kho lưu trữ duy nhất. Mọi người nên làm việc trong một nhánh chủ đề và nhánh chính nên được bảo vệ bằng các chính sách nhánh.

  • Nhóm lớn hơn: Khi nhóm của bạn phát triển, bạn có thể thấy mình phát triển vượt quá sự sắp xếp này và thích chuyển sang quy trình làm việc phân nhánh.

  • Khi nào sử dụng ngã ba:

    • Kho lưu trữ của bạn có nhiều người đóng góp thông thường hoặc không thường xuyên (như một dự án mã nguồn mở).
    • Chỉ những người đóng góp cốt lõi mới có quyền cam kết trực tiếp vào kho lưu trữ của bạn.
    • Bạn muốn các cộng tác viên từ bên ngoài nhóm cốt lõi làm việc từ một ngã ba.
    • Bạn muốn tách biệt các thay đổi cho đến khi bạn có cơ hội xem xét công việc.

Dòng công việc bắt tay

Dưới đây là các bước cơ bản cho quy trình phân nhánh:

  1. Tạo một cây bút.
  2. Sao chép địa phương nó.
  3. Thực hiện các thay đổi của bạn trên thiết bị và đẩy chúng đến một nhánh.
  4. Tạo và hoàn thành một yêu cầu kéo lên ngược dòng.
  5. Đồng bộ bút của bạn với phiên bản mới nhất từ bản cập nhật.

Bước 1: Tạo fork

  1. Điều hướng đến kho lưu trữ bạn muốn fork và chọn "Fork".
  2. Xác định tên và chọn dự án mà bạn muốn tạo cái n biết đi.
  3. Nếu kho chứa nhiều nhánh chủ đề, chúng tôi khuyên bạn chỉ nên nhánh nhánh mặc định.
  4. Chọn dấu chấm lửng, sau đó chọn "Fork" để tạo fork.

đồ hiển thị Tạo cây bút.

Ghi

Bạn phải có quyền Tạo Kho lưu trữ trong dự án đã chọn của mình để tạo một phân bổ. Chúng tôi khuyên bạn nên tạo một dự án chuyên dụng cho các nhánh trong đó tất cả những người đóng góp đều có quyền Tạo Kho lưu trữ.

Bước 2: Sao chép fork cục bộ

Một khi fork của bạn đã sẵn sàng, sao chép nó bằng cách sử dụng dòng lệnh hoặc một IDE như Visual Studio. Các fork sẽ là từ xa nguồn gốc của bạn.

git clone {your_fork_url}
For convenience, after cloning, you'll want to add the upstream repository (where you forked from) as a remote named upstream:

```bash
git remote add upstream {upstream_url}

Bước 3: Thực hiện và thúc đẩy thay đổi

Nó có thể làm việc trực tiếp trong chính - sau khi tất cả, điều này là bản sao của repo. Tuy nhiên, chúng tôi khuyên bạn vẫn nên làm việc trong một nhánh chủ đề vì:

  • Nó cho phép bạn duy trì nhiều luồng công việc độc lập cùng một lúc.
  • Nó làm giảm sự nhầm lẫn sau này khi bạn muốn đồng bộ hóa các thay đổi vào fork của mình.

Thực hiện và cam kết các thay đổi của bạn như bình thường. Khi bạn đã thực hiện xong các thay đổi, hãy đẩy chúng về nguồn gốc (cái bút của bạn).

Bước 4: Tạo và hoàn thành yêu cầu kéo

Mở một yêu cầu kéo từ fork của bạn đến kho lưu trữ ngược dòng. Tất cả các chính sách, người đánh giá bắt buộc và bản dựng sẽ được áp dụng trong kho lưu trữ ngược dòng. Khi tất cả các chính sách được đáp ứng, yêu cầu kéo có thể được hoàn thành và các thay đổi trở thành một phần vĩnh viễn của repo ngược dòng.

đồ cho thấy mục Tạo và hoàn thành pr.

Quan trọng

Bất kỳ ai có quyền Đọc đều có thể mở yêu cầu kéo lên ngược dòng. Nếu quy trình xây dựng yêu cầu kéo được định cấu hình, bản dựng sẽ chạy dựa trên mã được giới thiệu trong fork.

Bước 5: Đồng bộ hóa fork của bạn với phiên bản mới nhất

Khi pull request của bạn được chấp nhận vào upstream, bạn sẽ muốn đảm bảo rằng fork của bạn phản ánh trạng thái mới nhất của kho lưu trữ.

Chúng tôi khuyên bạn nên rebase trên nhánh chính của upstream (giả sử main là nhánh phát triển chính):

git fetch upstream main
git rebase upstream/main
git push origin

Lợi ích của quy trình làm việc của fork

Dòng công việc bắt tay cho phép bạn tách các thay đổi khỏi kho chính cho đến khi bạn sẵn sàng tích hợp chúng. Khi bạn đã sẵn sàng, việc tích hợp mã cũng dễ dàng như việc hoàn tất yêu cầu kéo.

Cách tiếp cận này cung cấp:

  • An toàn: Các thay đổi được tách biệt cho đến khi được xem xét.
  • Cộng tác: Nhiều người có thể làm việc trên các tính năng khác nhau cùng một lúc.
  • Chất lượng: Tất cả các thay đổi đều trải qua cùng một quy trình xem xét.
  • Tính linh hoạt: Người đóng góp không cần quyền truy cập ghi vào kho lưu trữ chính.