Tôi muốn chạy một cái gì đó trong nền mà về cơ bản hiện một git pull --rebase
bất cứ khi nào một số thay đổi xảy ra trong chi nhánh từ xa của tôi. Hầu hết thời gian hoạt động âm thầm trong nền nếu không có xung đột. Trong đó có một cuộc xung đột nó chỉ để lại tôi trong giai đoạn xung đột-giải quyết xung đột và cho đến khi tôi giải quyết mọi thứ nó chờ đợi. Làm thế nào để tôi làm điều này? Có một phần mềm hiện có đã thực hiện điều này không?Git: Làm thế nào để tự động cập nhật chi nhánh địa phương của tôi khi một thay đổi xảy ra trong nhánh theo dõi từ xa?
Trả lời
Nếu bạn không có quyền kiểm soát trên kho lưu trữ từ xa, một giải pháp là sử dụng crontab để chạy định kỳ git fetch
hoặc thậm chí có thể là git pull --rebase
như bạn đề xuất. Lệnh chính xác để chọn tùy thuộc vào quy trình làm việc của bạn, cá nhân tôi thích sử dụng git fetch
vì tôi có thể quyết định thời điểm và cách hợp nhất hoặc rebase.
Để chạy lệnh định kỳ chạy:
crontab -e
Và thêm một dòng như:
* * * * * git -C PATH_TO_LOCAL_REPO fetch
hoặc
* * * * * git -C PATH_TO_LOCAL_REPO pull --rebase
này sẽ chạy lệnh git mỗi phút với bạn Quyền Người dùng.
Nếu bạn muốn áp dụng lệnh git trên một danh sách các kho lưu trữ, bạn có thể có thể thêm dòng:
* * * * * /home/myself/scripts/git-refresh.sh
nơi git-refresh là một kịch bản được áp dụng trên tất cả các kho của bạn.
Tùy chọn -C
cho phép bạn chạy lệnh git mà không thay đổi thư mục. Từ man page:
-C <path>
Run as nếu git được bắt đầu vào thay vì thư mục làm việc hiện hành.
Nhưng tôi phải thêm điều này theo cách thủ công cho mọi repo tôi có trên máy tính để bàn của mình! Tôi có thể có hàng trăm bản Repos trên máy của tôi. Làm cách nào tôi có thể làm theo cách ít thủ công hơn, ví dụ: Tôi chạy một kịch bản như 'git-keep-fresh.sh &' trong một thiết bị đầu cuối trong thư mục gốc của dự án git Tôi đang ở. Thứ hai, làm thế nào điều này xử lý phần thứ hai của câu hỏi của tôi liên quan đến xung đột vv – pathikrit
Tôi đã cập nhật câu trả lời của mình để đưa khía cạnh đa kho lưu trữ vào tài khoản. Đối với giải quyết xung đột, đôi khi nó cần phải hướng dẫn bạn không thể tự động hóa nó, trong mọi trường hợp. –
@pathikrit: lưu ý rằng câu hỏi ban đầu của bạn ngụ ý tìm kiếm giải pháp cho một repo đơn lẻ. Một cronjob sẽ cho phép bạn chạy bất kỳ tập lệnh nào bạn muốn. Bạn có thể có một kịch bản quét các thư mục của bạn cho các kho lưu trữ git có thể (điểm khởi đầu có thể là: 'find $ HOME -name .git'), hoặc bạn có thể chuyển một danh sách các kho lưu trữ (' cat $ HOME/.repositories') . – LeGEC
Quá trình này gọi là Đồng bộ hoá một ngã ba
Sync một ngã ba của một kho lưu trữ để giữ cho nó up-to-date với kho thượng nguồn. Thật không may GitHub không có bất kỳ tính năng đồng bộ hóa tự động nào. Tuy nhiên, nó là tầm thường để thêm như một công việc cron trên một máy chủ để bạn không phải làm điều đó bằng tay. Ví dụ:
cd/srv/mirrorrepo; git fetch master upstream; git push nguồn gốc chủ
Plugin sau có thể giúp
- 1. Cập nhật chi nhánh địa phương với các thay đổi từ một chi nhánh được theo dõi từ xa
- 2. Bắt chi nhánh git hiện để theo dõi các chi nhánh từ xa
- 3. Git - thay thế chi nhánh địa phương bằng chi nhánh từ xa
- 4. Git: Theo dõi địa phương, thêm chi nhánh mới?
- 5. Git submodule để theo dõi chi nhánh từ xa
- 6. Git - theo dõi nhiều nhánh từ xa?
- 7. Làm thế nào để có được một chi nhánh theo dõi từ xa để luôn được cập nhật với nguồn gốc từ xa trong một kho Git trống?
- 8. Git: cập nhật thông tin chi nhánh từ xa
- 9. Không thể tạo một chi nhánh địa phương và từ xa (theo dõi) cùng lúc
- 10. Git: Chi nhánh theo dõi là gì?
- 11. Git thiết lập chi nhánh theo dõi từ xa
- 12. Git đẩy chi nhánh từ xa
- 13. Làm cách nào tôi có thể biết chi nhánh "gốc" từ xa mà chi nhánh của tôi dựa trên?
- 14. Thay thế chi nhánh địa phương với chi nhánh ở xa hoàn toàn
- 15. Git - đẩy đến một nhánh theo dõi từ xa trong kho từ xa
- 16. Đặt lại chi nhánh được theo dõi từ xa
- 17. Git theo dõi nhánh từ xa bằng netbeans
- 18. Đổi tên chi nhánh từ xa
- 19. Làm cách nào để xóa chi nhánh địa phương của tôi trong GIT?
- 20. Khi nào an toàn để xóa chi nhánh địa phương?
- 21. chi nhánh Git: theo dõi ngược dòng
- 22. Đổi tên chi nhánh git từ xa
- 23. Git chi nhánh từ xa màu đỏ
- 24. Làm thế nào để kết hợp tổng thể từ xa với chi nhánh địa phương
- 25. Không thể theo dõi chi nhánh từ xa - không nhận ra nguồn gốc/phát triển
- 26. Cách theo dõi nguồn gốc/chủ trong chi nhánh dev git của tôi
- 27. Sự khác biệt giữa chi nhánh theo dõi từ xa và chi nhánh trên điều khiển từ xa là gì?
- 28. hợp nhất một chi nhánh địa phương vào một chi nhánh địa phương khác
- 29. Từ xa mặc định khác nhau (chi nhánh theo dõi) cho git pull và git push
- 30. Làm cách nào để cập nhật chi nhánh theo tên?
Bạn sẽ cần phải thêm một cái móc để một kho lưu trữ từ xa hoặc chạy một công việc mỗi x phút tại địa phương. –
Máy chủ git của bạn được lưu trữ trên máy chủ nào? Github, Gitlab, Bitbucket, ..? –
@OrtomalaLokni: Tại sao điều đó lại quan trọng? Tôi hỏi câu hỏi chung cho bất kỳ máy chủ Git từ xa nào ... – pathikrit