Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.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 shell合并到不同的路径_Git_Merge_Git Bash - Fatal编程技术网

git shell合并到不同的路径

git shell合并到不同的路径,git,merge,git-bash,Git,Merge,Git Bash,我的git远程存储库有一个问题。我已经为gitshell访问创建了一个git用户 当有人加入shell时,主路径是/home/git/,这是确定的。问题是:我的存储库路径是/var/www/,我想让git用户可以在这个目录中合并,但不使用bash shell,所以我不允许在服务器中使用cd进行导航 Git shell是否具有执行合并命令的功能?最后一个有可能指定路径吗 我在git shell的合并中找不到任何东西 我正在考虑通过web创建一个可执行的.sh脚本。 但是通过gitshell直接给出

我的git远程存储库有一个问题。我已经为gitshell访问创建了一个git用户

当有人加入shell时,主路径是/home/git/,这是确定的。问题是:我的存储库路径是/var/www/,我想让git用户可以在这个目录中合并,但不使用bash shell,所以我不允许在服务器中使用cd进行导航

Git shell是否具有执行合并命令的功能?最后一个有可能指定路径吗

我在git shell的合并中找不到任何东西

我正在考虑通过web创建一个可执行的.sh脚本。 但是通过gitshell直接给出函数可以从根本上解决一些安全问题

提前感谢,,
毛罗。

我试着解决这个问题,临时的工作正在为我工作。 但我不建议您以与我相同的方式公开脚本,并尝试找出其他替代方案

在我的git存储库中,我创建了这个bash脚本

#!/bin/sh
GIT_MERGE_AUTOEDIT=no
export GIT_MERGE_AUTOEDIT
git merge [name_of_branch_one]
git merge [name_of_branch_two]
之后,我创建了一个简单的php函数,用于调用sh脚本,如下所示:

$exec = exec("sh /Your_Git_Repository_dir/merge.sh");
if($exec){
    print_r($exec);
}

我希望这能有所帮助。

你在这里想要实现什么?如果您想在web服务器上公开repo,有更好的方法可以做到这一点;e、 g.设置一个ApacheWeb服务器并用git进行配置,就像这里所解释的:这可能是个好主意,谢谢。但无论如何,我觉得公钥背后更安全,这就是为什么我尝试在shell端获得解决方案的原因。如果您只想通过ssh访问repo,为什么要尝试将其合并到/var/www中的repo中?感谢Steinar的快速回复。Basic我在/var/www/projectname目录中有主报告,在目录中我有一些分支,所以:/var/www/projectname/:-[branchs]:-master*-user\u a-user\b,所以user\u a推送到他的分支,user\u b也推送到他的分支,但它们需要合并到主分支。目前,他们可以推送到远程存储库/var/www/projectname,但他们需要与主存储库合并。为此,我还为推送和获取激活git shell。你了解我的git结构吗?我最终用简单的bash脚本解决了这个问题。我在php后面执行它,它可以工作。谢谢大家。