2013-04-18 48 views
13

Kịch bản sau:Hiểu các yêu cầu kéo trên GitHub: Điều gì xảy ra, khi kho lưu trữ yêu cầu bị xóa?

Tôi đã chia đôi kho lưu trữ nguồn mở (GitHub -> project -> Fork). Sau đó, tôi nhân bản copy dự án của tôi tại địa phương, thực hiện một số thay đổi trong ngành thạc sĩ, cam kết họ, và đẩy vào kho của tôi:

$ git clone [email protected]:myusername/originalprojectname.git 
... changes ... 
$ cd originalprojectname 
$ git add path/to/changed/file.php 
$ git commit -m "..." 
$ push 

Sau đó tôi bắt đầu yêu cầu kéo trên GitHub. Nó đã được đánh dấu là "Tốt để hợp nhất" và được thêm vào Milestone: x.y.z.

Mã được thay đổi ở đâu? Chỉ trong repo của tôi hay cái gì khác? Backgroud là: Tôi muốn xóa kho lưu trữ của mình. Vì vậy, cuối cùng câu hỏi của tôi: Nếu tôi xóa kho lưu trữ của tôi trên GitHub, thì các thay đổi vẫn có sẵn sau đó cho dự án ban đầu hay tôi phải đợi bản phát hành x.y.z?

Trả lời

12

Có, mã sẽ vẫn còn ở đó sau khi bạn xóa repo. Ngay sau khi bạn gửi yêu cầu pull của bạn, Github nội bộ thêm nhánh đó vào repo đích (nó tạo ra một nhánh trong một không gian tên không mặc định, vì vậy bạn thường không nhìn thấy chúng).

Vì không thể xóa thường xuyên PR, các nhánh đó sẽ tồn tại trong repo đích vô thời hạn.

Để trả lời câu hỏi khác của bạn: Mã sẽ nằm trong cả ngã ba của bạn và repo đích (ban đầu, ít nhất, trừ khi bạn xóa ngã ba).

+2

FYI, [cuộc trò chuyện này của Zach Holman] (http://zachholman.com/talk/more-git-and-github-secrets/) (nhân viên GitHub) xác nhận rằng "GitHub lưu trữ tất cả yêu cầu kéo trong kho lưu trữ của bạn [ …] Ngay cả khi ngã ba bị xóa ". – Dennis

+1

khi tôi refork repo đã xóa từ thượng nguồn, tôi có thể tiếp tục cập nhật các chủ đề PR trước đó? – rilut