2015-11-04 121 views
1

我正在開發一個通用的共享服務器,我ssh進入和(1)沒有git和(2)我沒有管理員權限來自行安裝git。如果我想版本化我的代碼,我必須使用SFTP將其退回到本地計算機,提交更改本地文件,然後推送到原始文件。沒有本地.git而推送到原點?

有沒有辦法添加+提交+將新保存的代碼直接推送到我的git倉庫而無需本地.git?我是唯一一個從事這個項目的人,所以沒有衝突的問題。

+3

你可以在本地文件夾,而不是一個系統中的一個安裝的git,並引用它。 – Jepessen

+0

我擔心@Jepessen是正確的,唯一的出路就是在某處安裝Git。 –

回答

1

您可以:

  • 在您的遠程服務器上的本地文件夾安裝的Git。這並不困難,如果您在$ PATH中添加位置,您可以照常使用它,而無需在使用它時插入整個路徑。
  • 您可以在您的遠程機器上爲您執行工作中創建一個腳本。該腳本應該使用scp將您的項目文件夾複製到本地計算機上,通過ssh連接到本地計算機並自動執行git命令。

在第二種情況下,你可以在你的bash腳本使用的東西像

#!/bin/bash 
sshpass -p remoteuser ssh -X -l -t [email protected] << EOF 
cd your/project/path 
git commit -a -m "Automated commit" 
git push origin 
EOF 

,並從遠程計算機調用它。

如果沒有衝突和工作/推送當前分支,該腳本應該可以工作。

0

還有另一種方法。 您可以將服務器上的存儲庫根目錄安裝到本地目錄中,然後在已安裝的目錄中創建本地.git倉庫,添加遠程服務器並最終全部推送。

通過這種方式,git本地回購被創建到服務器(不是本地)。 要安裝使用SSHFS

mkdir ~/mnt 
sshfs [email protected]_ip:path_to_root_of_repo ~/mnt 
chmod +x ~/mnt