2013-09-02 31 views

Trả lời

1

Bạn có thể tạo chi nhánh qua phần Create a Reference của API. Tôi không chắc chắn, tuy nhiên, nếu bạn có thể tạo ra một chi nhánh mồ côi với điều đó hoặc nếu API sẽ ngăn chặn điều đó.

Trong thực tế, thử nghiệm nó với curl không hoạt động:

curl -X POST -u sigmavirus24 https://api.github.com/repos/sigmavirus24/github3.py/github3.py/refs -d '{"ref":"refs/heads/orphaned"}' 
curl -X POST -u sigmavirus24 https://api.github.com/repos/sigmavirus24/github3.py/github3.py/refs -d '{"ref":"refs/heads/orphaned", "sha":""}' 

Cả hai trở lại:

{"message": "Reference update failed"} 

tôi đã cố gắng có và không có Content-Type tiêu đề (-H "Content-Type: application/json") nhưng không phải làm việc.

Từ thử nghiệm nhỏ đó, có vẻ như bạn không thể tạo chi nhánh mồ côi thông qua API.

+1

Tôi đã có thể tạo một tham chiếu với một sha chỉ đến một mức cam kết gốc (một cam kết mới mà tôi tạo ra không có cha mẹ). Khi tạo cam kết đó, tôi đã không thể tạo ra một tham chiếu cây trống thông qua api github, nhưng thay vào đó đã phải tạo một cây với một tệp giả trong đó. Tôi hiện đang sử dụng những cách giải quyết đó nhưng tôi vẫn muốn xem liệu có cách nào để tạo ra một chi nhánh mồ côi tham chiếu đến một mức độ gốc cam kết chỉ vào một cây trống không. –

1

Có thể làm điều này bằng:

  1. Kiểm tra xem các chi nhánh đã tồn tại
  2. Nếu không, sau đó tạo ra một cam kết rằng đề cập đến git của empty tree SHA
  3. Sau đó tạo một ref để có hành

Bạn có thể tìm thấy một số ví dụ về CoffeeScript về cách thực hiện điều đó từ https://github.com/noflo/noflo-github/blob/master/components/CreateOrphanBranch.coffee#L31

Đây là một chi nhánh như vậy tạo ra theo cách này: https://github.com/the-domains/example.net/tree/branch_1403616324001

Cập nhật: phương pháp này chỉ hoạt động nếu các kho git có chi nhánh đứa trẻ mồ côi trước. Nếu nó là một repo mới được tạo ra thông qua API của GitHub sử dụng tùy chọn auto_init nó sẽ không hoạt động. Tôi đã liên lạc với GitHub về việc này.

Các vấn đề liên quan