相关疑难解决方法(0)

Windows下的Git Hook

我有以下代码在hook post-receive的工作目录中签出:

#!/bin/sh
git --work-tree=d:/websites/__gitweb --git-dir=d:/_gitrepo.git/ checkout -f
Run Code Online (Sandbox Code Playgroud)

不幸的是它似乎不起作用.但是,当我在Windows命令行(cms)中输入此命令时,该命令可以正常工作:

git --work-tree=d:/websites/__gitweb --git-dir=d:/_gitrepo.git/ checkout -f
Run Code Online (Sandbox Code Playgroud)

我检查了权限和执行属性,但没有.

更新:

我想我越来越近了.现在我知道问题是什么,但我不知道为什么会这样.挂钩实际上是被触发但我收到此消息:

remote: Starting copy from repository to work tree...
remote: fatal: Not a git repository: 'd:/_gitrepo.git/'
remote: Finished.
Run Code Online (Sandbox Code Playgroud)

我试图将d:的路径改为整个网络路径,但它仍然无效.如果我去远程存储库并且我做了一个git日志,那么更改就在那里,如果我用sh运行钩子,它就可以了.为什么说它显然不是git存储库?

windows git hook post

12
推荐指数
1
解决办法
3万
查看次数

Mercurial Hg-Git:从本地目录克隆?

我在我的计算机上有一个本地Git存储库,我试图用Hg-Git克隆.当我从git://类型路径克隆时,它对我来说很好,但如果我尝试从本地目录克隆则不行.

这是一个例子......

hg clone "C:\Users\James\Documents\My Games\FalloutNV"
destination directory: FalloutNV
importing Hg objects into Git
abort: The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)

路径确实存在,并且它以某种方式知道它是一个Git仓库,但它有向后的方向.它应该将Git对象导入(新)Hg仓库.

有任何想法吗?我在Windows上,尝试使用TortoiseHg但在命令行中足够舒服.


更新

今晚我发现如果我重命名FalloutNVFalloutNV.git......克隆将从本地磁盘神奇地工作.只是一个可能有帮助的指针!

git mercurial hg-git

9
推荐指数
1
解决办法
4613
查看次数

为什么我不能在 Git Bash 中使用“more”命令?

不过,“less”命令工作正常。

我可以使用“less”在屏幕上显示文件的一部分。

据说有一个“更多”命令,但是当我输入它时,它显示“bash:更多:找不到命令”。

git-bash less-unix

8
推荐指数
1
解决办法
9266
查看次数

msysGit sudo-like命令

如果我们以管理员身份打开msysgit,我们可以像使用root一样使用它.但是,在没有管理员权限的情况下打开通常更容易.例如,对于管理员权限,您通常必须转到Windows资源管理器,"开始"菜单/屏幕等,并且您无法从任务栏执行此操作.有时,我懒得做这一切,但我想在Bash中获得管理员权限.Git Bash 是否有sudo- 或者su- 类似的命令或脚本等?进入cmd.exe,PowerShell等等,然后做一些类似的runas工作,如果没有别的.

windows sudo su msysgit git-bash

7
推荐指数
1
解决办法
1万
查看次数

TortoiseGit我必须先下载MsysGit或Git吗?

我发现手册在这个问题上有点混乱,搜索以前的答案让我更加困惑.

tortoisegit

4
推荐指数
1
解决办法
6804
查看次数

Github和Git - 在win7中使用git终端需要什么?

我想与在他们的私人服务器上使用git的团队合作.我需要从服务器推送和拉出什么?我得到了win7,我需要什么?我在githubgit上找到了一个下载.

git github

3
推荐指数
1
解决办法
60
查看次数

为什么perl vc.8.8(git-bash)中的perl exec()在v5.18.2(草莓)中的工作方式不同?

最近将Strawberry Perl放在Windows 8.1机器上exec ,并发现在git-bash中使用v5.8.8的行为与/bin/perl使用Strawberry的机器不同/c/strawberry/perl/bin/perl.这是我发现的非常简单的脚本(纯粹是在玩的时候偶然$PATH):

#!/usr/bin/env perl
my $comment = "@ARGV" || 'update';
exec "git status; git add -A . ; git status; git commit -m '$comment'; git push";
Run Code Online (Sandbox Code Playgroud)

这与git-bash(/bin/perl)工作正常,但在/c/strawberry/perl/bin/perl发现$PATH以下错误发生时:

git: 'status;' is not a git command. See 'git --help'.

Did you mean this?
    status
Run Code Online (Sandbox Code Playgroud)

两种情况下的代码都相同.我的预感是草莓中的perl 5.18改变了exec命令本身的行为,因为它在上下文中解释了它的参数(就像perl喜欢这样做).

我主要担心的是,perl的两个版本在某种程度上使这个相当简单的代码在perl版本之间不兼容,而不是其他一些简单的系统配置问题,甚至可能是草莓发行版本身而不是perl的问题.

如果这是一个perl兼容性问题,我倾向于坚持使用v5.8.8,它完成了我想要Perl为我做的所有事情(在转到另一种语言之前).

execperl语句是否在这些版本之间发生了变化?我在互联网上找不到任何证据.

要重新创建此行为:

在Windows机器上安装git-scm.org:

  • 下载并安装http://git-scm.org
  • 启动git-bash shell
  • 创建一个shell脚本并将上面的代码放入其中
  • 使用chmod 755设置执行权限
  • 确保您使用/ bin/perl …

git perl exec strawberry-perl

-1
推荐指数
1
解决办法
443
查看次数