簡體   English   中英

Rails控制器中的git命令

[英]git command in rails controller

我正在嘗試建立一個系統,當我將更改提交到GitHub存儲庫時,我的服務器也會收到這些提交。

為此,我將GitHub存儲庫設置為將后接收鈎子發送到我的rails應用程序上的URL。 我有一個控制器可以處理這個問題。

問題是這樣的:如何在Rails控制器中運行git命令? 我知道如何在命令行中做到這一點。

我是否只鍵入以下內容:

# controller method where post-receive hook is sent
def commit
 git pull origin development
end

做這個!

def commit
 system "git pull origin development"
end

您聲明的目標與計划使用的命令之間有很大的不同。 為了獲得提交,您只需要運行git fetch 您可以使用system或反引號來從您的ruby代碼運行shell命令,但是您需要注意運行的內容。 您應謹記,拉是合並,這意味着更改隨時可能發生沖突,這將使您的存儲庫等待人工干預(更不用說所有帶有沖突標記的文件了),因為它是級別的用戶界面,完全不打算編寫腳本。

如果您確實想要技巧中的文件版本,進行部署或類似操作,則可以查看http://gitolite.com/the-list-and-irc/deploy.html ,了解執行此操作的一些不同方法,視情況而定。

您可以結合使用脫殼進行git fetchgit checkout或在代碼中進行加固來執行此更新,並且請注意,這都是IO綁定的(通過網絡進行的一部分),這意味着它可以任意運行時間,如果它阻礙了ruby的執行,那么與您的應用程序的其余部分可能無法很好地配合。

RitRuby / Git之類的Git上嘗試Ruby抽象。 兩者都保持活躍,而其他類似的庫似乎已被淘汰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM