Tôi muốn đi qua một loạt các cam kết và thực hiện lệnh shell trên mỗi lệnh. Nếu lệnh thất bại, tôi muốn đi bộ để dừng lại, nếu không tiếp tục đi. Tôi đã xem filter-branch
, nhưng tôi không muốn viết lại các cam kết, chỉ cần kiểm tra chúng. for-each-ref
dường như không cho phép bạn chỉ định phạm vi hoạt động.Lệnh shell chạy Git cho mỗi cam kết
Vấn đề cụ thể của tôi là tôi đã tạo ra một loạt các cam kết và tôi muốn đảm bảo rằng mỗi cam kết đều có thể xây dựng được. Tôi muốn làm điều gì đó như:
git foreach origin/master..master 'git submodule update && make clean && make'
tôi có thể tất nhiên viết một kịch bản để làm điều này, nhưng nó có vẻ như các loại điều mà git có thể có một cách tốt đẹp để làm.
Bạn đã cân nhắc sử dụng Python chưa? Có lẽ GitPython có thể là một giải pháp. Kiểm tra bài đăng này: http://stackoverflow.com/questions/1456269/python-git-module-experiences – kmundnic
Bạn có biết rằng nguồn gốc/thạc sĩ là tốt và chủ là xấu (hoặc nghịch đảo), hoặc là bạn chỉ cần cố gắng để kiểm tra tất cả mọi thứ giữa chúng mà không biết rằng có tồn tại một sự thất bại tại bất kỳ địa điểm cụ thể? –
@CharlesDuffy, sau này. Tôi bắt đầu từ một điểm làm việc và thực hiện một loạt các thay đổi đã hoạt động. Sau đó, tôi đã thực hiện một số cam kết chi tiết từ đống thay đổi làm việc không được cam kết, và muốn đảm bảo rằng tất cả các cam kết ở giữa đều có thể xây dựng được. – FazJaxton