2016-08-02 14 views
5

Tôi muốn sử dụng Git để tạo thuận lợi cho sự phát triển của my userscripts (21). Ngoài ra, tôi cũng muốn chúng được lưu trữ trong GitHub. (sử dụng Greasemonkey với Firefox trong cửa sổ 10).Làm thế nào để quản lý người dùng dầu mỡ của tôi bằng Git (để chúng được lưu trữ trong GitHub)

Vì vậy, câu hỏi của tôi là: cách được đề xuất để quản lý người dùng của tôi bằng cách sử dụng Git, để cũng có chúng được lưu trữ trong GitHub?

  • giữ một thư mục riêng biệt (ví dụ c:\my_scripts mà sẽ là thư mục repo của tôi) chứa bản sao của file userscripts tôi,
    tức là mỗi khi tôi thay đổi một trong các file UserScript của tôi (nằm trong gm_scripts)
    Tôi sẽ phải sao chép thủ công từ gm_scripts\script_subfolder đến my_scripts?

  • có tất cả userscripts tôi sử dụng trong cùng một thư mục riêng biệt (thư mục repo của tôi),
    và liên kết chúng vào thư mục gm_scripts (sử dụng links- -symbolic mklink trong một file .bat), như tôi đã đọc trong this answer
    ?

  • chỉ tạo một kho chứa nội dung gm_scripts của tôi?
    (bên gm_scripts, ngoài 21 userscripts của tôi, tôi đã có nhiều kịch bản khác được cài đặt, mà tôi sẽ phải bao gồm trong tập tin .gitignore của tôi)
  • hay là có cách nào tốt hơn mà tôi bỏ lỡ?

tôi đã nhận thấy Repos của hai tác giả của nhiều userscripts: @Mottie và @jerone đã nhiều userscripts họ tổ chức ở GitHub, nhưng họ làm theo cách tiếp cận khác nhau:
Mottie's userscriptstất cả đều nằm trong thư mục gốc của repo (chỉ các tập tin .js, không có thư mục con), (screenshot)
khi jerone's userscripts nằm mỗi trong thư mục con riêng của mình trong repo (screenshot).

tôi đoán là Mottie có tất cả userscripts của mình trong cùng một thư mục riêng biệt (đó là repo), và có họ liên kết vào thư mục gm_scripts,
khi jerone hoặc chỉ giữ một thư mục riêng biệt như một repo, theo bản sao kịch bản của mình,
hoặc có repo mình chứa các gm_scripts thư mục
(nhưng, jerone của .gitignore không chứa mục cho các tập tin trong gm_folder rằng nên bỏ qua, chẳng hạn như .db, .wal, .shm, config.xml và tương tự. Vì vậy, tôi không chắc chắn nếu đó là trường hợp).

+1

Tôi nghĩ rằng cả ba giải pháp đều hợp lệ. Tôi tin rằng giải pháp thực sự bạn sử dụng hoàn toàn phụ thuộc vào ý kiến ​​của riêng bạn về những gì hoạt động tốt hơn cho bạn. –

+1

Cá nhân tôi đặt người dùng của tôi lên dưới dạng Gists trên gist.github.com. Và sau đó tôi sao chép từng Gist một cách riêng biệt, vì vậy tôi thực sự có một kho lưu trữ Git riêng biệt cho mỗi tập lệnh người dùng nhưng tôi cũng không có chi phí của một kho lưu trữ GitHub đầy đủ cho mỗi một. – poke

+0

@poke: Cảm ơn bạn đã cung cấp một cách khác. Nó rất thiết thực. – darkred

Trả lời

3

I (người dùng ở trên được gọi là @jerone) thực sự có hai thư mục mà tôi tiếp tục đồng bộ hóa: GreaseMonkey gm_scripts thư mục và đã kiểm xuất repo thư mục ở một vị trí khác.

Cấu trúc thư mục hiện tại trên GitHub là ở đó vì tôi muốn sao lưu tập lệnh của mình, ngay trước Userscripts.org khi ngoại tuyến. Vì vậy, tôi chỉ cần sao chép các tập lệnh của tôi (với các thư mục) từ thư mục gm_scripts. Ngoài ra, vì tôi đã sử dụng một số trước đây là @require, hãy giữ chúng trong thư mục tương ứng của chúng.

Tôi chưa liên kết thư mục gm_scripts của mình với git vì sử dụng các nhánh git cho mỗi người dùng. Những rắc rối của việc rebasing branch với master mới nhất là một lý do. Một lý do khác là bạn không thể làm việc trên hai nhánh tính năng cùng một lúc.

Khi làm việc trên bản sửa lỗi hoặc tính năng mới, tôi tất nhiên đang làm việc trong thư mục gm_scripts. Khi tôi hài lòng với những thay đổi về bản ghi người dùng trực tiếp, tôi sử dụng WinMerge để đồng bộ hóa các thay đổi với thư mục kiểm tra thanh toán trước khi thực hiện các thay đổi.

Tệp .gitnore có ở đó, vì tôi đã sử dụng Visual Studio để cập nhật tập lệnh, nhưng tôi đã thay đổi thành Atom thời gian dài trước đây.

+0

Cảm ơn bạn đã giải thích chi tiết cách bạn sử dụng Git với người dùng của bạn. Tôi đã postied mycripts của tôi trong github (trong [repo này] (https://github.com/darkred/Userscripts)) theo cách của bạn, và nó thực sự là thực tế nhất. – darkred

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