Cách xem bản sửa đổi Git từ xa trên Heroku


85

Để triển khai Heroku, tôi sử dụng git push heroku master. Nhưng làm thế nào để xem bản sửa đổi nào mà tôi đã đẩy lên heroku? (Tôi thường nghi ngờ nếu tôi đã đẩy phiên bản gần đây lên)

Đối với những người không quen thuộc với nó, tập lệnh tạo của Heroku tạo ra một kho lưu trữ git từ xa mà bạn đẩy đến. Sau khi đẩy, mã được triển khai một cách kỳ diệu.

Heroku thêm một kho lưu trữ từ xa vào kho lưu trữ cục bộ ở dạng:

$ git remote add heroku git@heroku.com:appname.git

Thông tin thêm trong hướng dẫn sử dụng của Heroku "Triển khai với Git"

Câu hỏi là: Làm cách nào để xem phiên bản mới nhất trong kho lưu trữ Heroku?

Câu trả lời:


63

Nếu bạn vừa đẩy và muốn đảm bảo rằng bạn được cập nhật, thì bạn có thể chạy git remote show herokuvà bạn sẽ thấy đầu ra tương tự như sau:

* remote heroku
  Fetch URL: git@heroku.com:XXX.git
  Push  URL: git@heroku.com:XXX.git
  HEAD branch: master
  Remote branch:
    master tracked
  Local ref configured for 'git push':
    master pushes to master (up to date)

Điều đó (up to date)ở cuối sẽ được thay thế bằng (fast forwardable)nếu nó không được cập nhật.

Hoặc, nếu bạn muốn xem nhật ký cam kết đầy đủ cho điều khiển từ xa heroku, cách duy nhất tôi biết là kiểm tra nó trước. git checkout heroku/mastersẽ cung cấp cho bạn hàm băm cam kết hiện tại và nhận xét cam kết : HEAD is now at <short commit hash>... <commit comment>, và git logsẽ cung cấp cho bạn phần còn lại của câu chuyện.


Cảm ơn rất nhiều cho câu trả lời này! Tôi đã tìm kiếm nó ở khắp mọi nơi.
tbaums

3
Không thực sự cho bạn biết giới thiệu
Obie

có cách nào để xem các tệp trực tuyến như trong repo github không?
eran otzap

128

Câu trả lời chính xác thực sự rất đơn giản. Bạn không cần phải kiểm tra bất cứ thứ gì, cũng không phải dùng đến các bản hack COMMIT_HASH (không hoạt động trên Cedar stack). Tất cả những gì bạn cần làm là:git ls-remote <remote>

 > git ls-remote heroku
ddaszxcewb585d3a3c00de816a197b14462791a3        HEAD
ddaszxcewb585d3a3c00de816a197b14462791a3        refs/heads/master

vì vậy điều này sẽ hiển thị cho bạn phiên bản mà một kho lưu trữ từ xa cụ thể được trỏ đến?
EE33

12
Để có đầu ra thông điệp này và dễ dàng nhìn thấy git commit log và diff văn bản: git ls-remote heroku | awk 'END{print $1}' | xargs git show
Bobby Norton

Bình luận của @ BobbyNorton là câu trả lời thẳng vào vấn đề ở đây. Đẹp.
Ben Hull

45

Bây giờ bạn có thể muốn heroku releasesvà bạn sẽ thấy như 5 cam kết. ít nhất là một khởi đầu.


1
Cảm ơn. Điều này thực sự cho tôi thấy những gì tôi muốn tìm hiểu (sau khi thực hiện khôi phục lại những gì đang thực sự chạy).
Cymen,

24

Thế còn

git log heroku/master

Tùy thuộc vào cách bạn triển khai, mastertham chiếu nhánh có thể được cập nhật hoặc không được cập nhật lên SHA đã được triển khai.
Justin

11

nếu bạn gặp phải tình huống, như tôi vừa làm, khi một đồng nghiệp đã đưa ứng dụng heroku của bạn trở lại một bản phát hành không hiển thị heroku releasesvì họ chỉ theo dõi 2 bản phát hành ... kiểm tra của heroku / master phương pháp này sẽ không giúp ích được gì, vì HEAD không phải là thứ được triển khai nữa.

không có giấy tờ để giải cứu:

$ heroku console "ENV['COMMIT_HASH']"
"12abcdef"

điều đó thật ngọt ngào nhưng có cách nào để có được git commit cuối cùng không. Tôi đã kiểm tra ENV không có bất kỳ biến nào tôi có thể sử dụng cho ngày tháng.
David

10
Điều này không hoạt động trên Cedar nữa, nếu có bất kỳ thay thế nào?
dolzenko

Tôi nhận được 'heroku console' has been disabled( devcenter.heroku.com/changelog-items/109 ). Tôi đã cố gắng heroku run "ENV['COMMIT_HASH']"nhưng tôi nhận được bash: ENV[COMMIT_HASH]: command not found. Khi tôi sử dụng, echotôi nhận được chuỗi ENV[COMMIT_HASH].
guyaloni

Bạn có thể truy cập bảng điều khiển Rails trên ngăn xếp Cedar bằng cách chạy heroku run consolevà bạn có thể thấy những gì bên trong ENV['COMMIT_HASH']biến bằng cách chạy heroku run echo $ENV['COMMIT_HASH'](vì nó là một biến môi trường, bạn cần có '$' - tương tự như vậy echo $PATH).
nghiêng

-1

heroku đang sử dụng Git cũ bên dưới, vì vậy ..

hiển thị 5 cam kết mới nhất trên nhánh hiện tại: git log -5

hiển thị lịch sử cam kết qua gui của Git: gitk

xem trạng thái hiện tại (nó sẽ hiển thị nếu bạn có bất kỳ tệp nào không giới hạn): git status

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.