2012-06-05 31 views
5

Tóm tắt: Tôi muốn chỉnh sửa tệp cục bộ, sau đó đẩy tới cả Github và máy chủ web của tôi.Đẩy tới máy chủ từ xa và Github

Tôi có hai bộ điều khiển từ xa được thiết lập mà không có vấn đề, vì vậy ngay bây giờ tôi có thể thực hiện việc này; tuy nhiên, tôi phải có nhánh A được kiểm tra cục bộ và nhánh B trên máy chủ. Sau đó, tôi phải SSH vào máy chủ và kiểm tra chi nhánh A (cái tôi muốn). Tôi thực sự thậm chí không muốn hoặc cần một chi nhánh thứ hai, nhưng nhiều bài viết cho thấy rằng bạn không thể hoặc không nên đẩy đến một kho không trống. Phải có cách tốt hơn. Ngay cả chỉ sử dụng rsync sẽ dễ dàng hơn thế này (và tôi đã làm nó một lúc).

Kỳ lạ thay, điều này không bao giờ xảy ra trên Github. Hầu như tất cả các repos của tôi chỉ có một chi nhánh và tôi chưa bao giờ nhận được cảnh báo này.

Thông báo cảnh báo cho biết bạn có thể đặt receive.denyCurrentBranch để bỏ qua, nhưng tôi không biết mức độ an toàn/sane như thế nào. Tôi hy vọng một người nào đó sẽ hiểu mô tả mơ hồ của tôi (đó là do kiến ​​thức hạn chế của tôi về git) và biết giải pháp tối ưu.

Trả lời

4

Sẽ dễ dàng hơn khi thiết lập móc sau khi nhận trên một bản repo trần trên máy chủ web của bạn.
Bằng cách đó, móc này có thể:

  • thư mục thay đổi và kéo những thay đổi mới cho repo thực tế phi trần
  • thanh toán các chi nhánh bạn muốn

Xem "Git Post-Receive Hook for Website Staging" và công việc trong "Using Git to manage a web site":

$ mkdir /var/www/www.example.org 
$ cat > hooks/post-receive 
#!/bin/sh 
GIT_WORK_TREE=/var/www/www.example.org git checkout -f 
$ chmod +x hooks/post-receive 

(Lưu ý: thực tế thú vị, bạn có thể push to two different remote repos simultaneously)

+0

Tôi mất một phút để tiêu hóa: '/ var/www/www.example.org' là thư mục trang web thực sự trên máy chủ, tệp 'post-receive' sẽ nằm trong repo trống trên máy chủ (phải là một thư mục khác), và URL để đẩy đến là repo trần. Tôi thực sự đọc hướng dẫn mà bạn đã đề cập trước khi yêu cầu. Tôi đã nhầm lẫn khi dir site.git không có bất kỳ tệp nào của tôi, nhưng tôi nghĩ rằng tôi hiểu cách hoạt động của nó ngay bây giờ. Cảm ơn. – Daniel

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