Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在没有本地.git的情况下推送到源代码?_Git_Github - Fatal编程技术网

在没有本地.git的情况下推送到源代码?

在没有本地.git的情况下推送到源代码?,git,github,Git,Github,我在一个通用共享服务器上开发,我使用ssh连接到该服务器上,(1)没有git,(2)我没有自己安装git的管理员权限。如果我想对代码进行版本化,我必须使用SFTP将其拉回到本地机器,提交本地更改,然后推送到源代码 有没有一种方法可以添加+提交+将新保存的代码直接推送到我的git repo,而不需要本地的.git?我是唯一一个参与此项目的人,因此没有冲突问题。您可以: 在远程服务器的本地文件夹上安装Git。这并不困难,如果在$PATH中添加位置,则可以像往常一样使用它,而不用在使用它时插入整个路

我在一个通用共享服务器上开发,我使用ssh连接到该服务器上,(1)没有git,(2)我没有自己安装git的管理员权限。如果我想对代码进行版本化,我必须使用SFTP将其拉回到本地机器,提交本地更改,然后推送到源代码

有没有一种方法可以添加+提交+将新保存的代码直接推送到我的git repo,而不需要本地的.git?我是唯一一个参与此项目的人,因此没有冲突问题。

您可以:

  • 在远程服务器的本地文件夹上安装Git。这并不困难,如果在$PATH中添加位置,则可以像往常一样使用它,而不用在使用它时插入整个路径
  • 您可以在远程计算机中创建一个脚本,为您执行工作。脚本应该使用scp将您的项目文件夹复制到本地计算机中,通过ssh连接到本地计算机,并自动执行git命令
在第二种情况下,您可以在bash脚本中使用类似的内容

#!/bin/bash
sshpass -p remoteuser ssh -X -l -t localuser@localmachine << EOF
cd your/project/path
git commit -a -m "Automated commit"
git push origin
EOF
#/bin/bash
sshpass-p远程用户ssh-X-l-tlocaluser@localmachine还有另一种方法。
您可以将服务器上存储库的根目录装载到本地目录中,然后在装载的目录中创建一个local.git repo,添加远程服务器,最后推送所有

通过这种方式,git本地repo被创建到服务器中(而不是本地)。 若要安装,请使用sshfs

mkdir ~/mnt
sshfs username@server_ip:path_to_root_of_repo ~/mnt
chmod +x ~/mnt

你可以在本地文件夹而不是系统文件夹中安装git,并参考它。我担心@Jepessen是对的,唯一的出路是在某处安装git。