Làm cách nào để tôi tạo một công việc định kỳ sẽ cam kết thay đổi dự án của tôi thành git hàng tuần


8

Tôi đang sử dụng git cho mục đích tạo bản ghi lịch sử về những thay đổi được thực hiện cho dự án của tôi. Tôi hiểu đó không phải là cách sử dụng lý tưởng mà là mô hình sử dụng mà tôi đã chọn vì nhiều lý do mà tôi sẽ không tham gia vì lý do ngắn gọn.

Làm cách nào để tạo một công việc định kỳ cam kết thay đổi kho lưu trữ mỗi ngày hoặc mỗi tuần?

Tôi đang sử dụng phiên bản git mới nhất trên Ubuntu 10.10.

Câu trả lời:


9
0 20 * * 0 /path_to_script

Điều đó sẽ chạy lệnh được chỉ định (thay thế /path_to_script') vào lúc 20:00 giờ địa phương mỗi Chủ nhật. Cú pháp cho các công việc cron khá đơn giản và có một công cụ khéo léo sẽ giúp bạn tạo chúng mà không cần nhớ các vị trí mã.

Trong trường hợp này, lệnh sẽ là một tập lệnh chạy cam kết cho bạn. Tôi nghĩ rằng trong trường hợp của bạn sẽ dễ dàng nhất để viết một kịch bản shell nhanh để thay đổi thư mục clone và sau đó chạy cam kết. Tạo một tập tin tại ~/commit.shvà đặt nó trong đó ( /location/of/clonetất nhiên thay thế )


#!/bin/sh
cd /location/of/clone
git-commit -m "commit message, to avoid being prompted interactively"

Sau đó, chmod +x ~/commit.shđể làm cho nó có thể thực thi được và để công việc định kỳ chạy (tham khảo nó bằng đường dẫn đầy đủ của nó, thay vì sử dụng ~).


Câu trả lời tốt. Hãy nhớ rằng cronjob (rõ ràng) chỉ được thực thi nếu máy tính của bạn đang chạy vào thời gian được chỉ định (ví dụ: Chủ nhật 20:00).
pableu

Làm thế nào tôi có thể làm cho nó làm việc đẩy đến máy chủ là tốt?
Jason

Ngoài ra, làm cách nào để tôi thêm tệp mà tôi đã thêm
Jason

Chỉ cần thêm git-đẩy vào tập lệnh để có nó đẩy vào máy chủ. Bạn có thể sử dụng tùy chọn -a để git-commit để nó tự động thêm tất cả các tệp đã được sửa đổi hoặc xóa.
jcrawfordor

1
Bạn không muốn thêm một -alệnh cam kết, vì vậy nó sẽ tự động thêm tất cả các tệp đã được theo dõi vào khu vực tổ chức?
Dror

2

Chạy crontab -eđể chỉnh sửa cronjob người dùng của bạn và chèn dòng này:

0 20 * * 0 (cd /path/to/myproject && git add . && git commit -m "Automatic Commit" && git push)

Tất nhiên, bạn sẽ phải thiết lập repo GIT của mình bao gồm một kho lưu trữ từ xa đang hoạt động, nhưng đó không nằm trong phạm vi của câu hỏi này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.