2015-10-05 15 views
15

Điều tôi muốn làm là nghịch đảo của this question. Tôi có một thư mục trong một repo github có chứa một hình ảnh d3 mà tôi muốn tiếp tục thực hiện thay đổi. Sẽ thật tuyệt khi có một phiên bản "gist" của repo này để hiển thị hình ảnh trên bl.ocks.org mà tôi có thể đẩy những thay đổi đến khi từ repo chính sau khi tôi hài lòng với họ.Cách chuyển đổi tệp trong github repo thành gist

Một câu hỏi tương tự khác là here, nhưng câu trả lời mô tả gist bước -> bl.ocks.org. Tôi không chắc chắn về bước githup repo -> gist. cách tốt nhất để thực hiện điều này là gì?

Trả lời

16

Trước hết, lưu ý rằng Gist không hỗ trợ thư mục. Để nhập một kho lưu trữ vào một ý chính theo các bước tiếp theo:

  1. Tạo một ý chính mới và sao chép nó tại địa phương (thay id giả với id Gist của bạn):

    git clone [email protected]:792bxxxxxxxxxxxxxxx9.git 
    
  2. cd để ý chính mà thư mục

  3. Kéo và hợp nhất từ ​​kho GitHub của bạn:

    git pull [email protected]:<user>/<repo>.git 
    
  4. Đẩy thay đổi của bạn

    git push 
    

Một lần nữa, lưu ý rằng nếu bạn có thư mục, bạn phải xóa và cam kết họ:

rm -rf some-directory 
git commit -m 'Removed some-directory' . 

Sử dụng các bước trên, lịch sử dự án sẽ được giữ. Nếu bạn không quan tâm đến lịch sử, bạn luôn có thể đẩy các tệp trong Gist của mình. Giả sử bạn có một kho chứa nhiều thư mục và bạn muốn cho mỗi thư mục tạo một Gist. Bạn sẽ lặp lại các bước tiếp theo (hoặc một kịch bản có thể làm điều đó):

git clone [email protected]:<gist-id>.git 
cd <gist-id> 
cp ../path/to/your/github/repository/and/some/folder/* . 
git add . 
git commit -m 'Added the Gist files' . 
git push 

Gist là khác biệt so với cách GitHub hoạt động:

Gist là một cách đơn giản để chia sẻ các đoạn và bột nhão với khác. Tất cả các gists là kho Git, vì vậy chúng được tự động phiên bản, có thể chia xẻ và có thể sử dụng từ Git.

Tuy nhiên, nếu bạn cố gắng đẩy thư mục trong GIST bạn sẽ nhận được lỗi từ xa:

$ git push 
Counting objects: 32, done. 
Delta compression using up to 8 threads. 
Compressing objects: 100% (21/21), done. 
Writing objects: 100% (32/32), 7.35 KiB | 0 bytes/s, done. 
Total 32 (delta 10), reused 0 (delta 0) 
remote: Gist does not support directories. 
remote: These are the directories that are causing problems: 
remote: foo 
To [email protected]:792.....0b79.git 
! [remote rejected] master -> master (pre-receive hook declined) 
error: failed to push some refs to '[email protected]:79.......9.git' 
+0

Cảm ơn bạn, nhưng những gì bạn có nghĩa là Gist không hỗ trợ thư mục? Vì vậy, những gì tôi có là một repo, với một số thư mục. Trong mỗi thư mục là một hình ảnh độc lập d3 - mỗi thư mục chứa index.html, style.css vv Tôi có thể nhập nội dung trong mỗi thư mục theo cách này vào Gists riêng biệt không? –

+0

@ Andre5 Bạn sẽ phải tạo ra những nắm đấm khác nhau cho mỗi cái. Nếu bạn muốn tự động hóa quy trình, bạn có thể muốn sử dụng [Gists API] (https://developer.github.com/v3/gists/). –

+0

Vâng, đó là chính xác những gì tôi muốn làm, tạo ra những ý chí khác nhau cho mỗi người. Hướng dẫn của bạn có áp dụng trong trường hợp này không? –

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