1

我有一个 GIT 备份脚本,当从命令行执行时可以完美运行(它是我们主要 GIT 代表的每日备份):

@echo off
rem -- Set Parameters
rem -- daliy GIT backup
REM Get DATE
set mm=%Date:~4,2%
set dd=%Date:~7,2%
set yy=%Date:~10,4%
set TODAY=%yy%%mm%%dd%
for /f %%a in ('date /t') do set DAY=%%a
if %DAY%==Sun goto :weekend
if %DAY%==Sat goto :weekend
goto :weekday
:weekend
:: No backup after weekends
echo %day%
exit
:weekday
:: Backup during weekdays
REM Connect to share
REM net use z: \\backupnas\backup\
Z:
cd \
cd git
REM Start backup of current GITS
cd OptiTexRepo.git
call git fetch
cd ..
RAR.exe a -rr10 -s ARCHIVES\%TODAY%.OptiTexRep.git.rar OptiTexRepo.git
cd OptiTexRepo_V11.1.git
call git fetch
cd ..
RAR.exe a -rr10 -s ARCHIVES\%TODAY%.OptiTexRepo_V11.1.git.rar OptiTexRepo_V11.1.git
REM exit

但是,当我每天从 W2008R2 服务器将其作为计划任务运行时,它立即存在(非常类似于问题https://serverfault.com/questions/343496/powershell-script-works-from-command- line-not-from-task-scheduler-why)这给了我一个想法,检查天气 GIT FETCH 是否与 UNC 一起正常工作 - 显然可以,但是在任务中运行时 - 出了点问题 - 我不知道是什么.

根据问题:git on UNC path git 应该可以工作,但我不明白脚本命令需要什么才能使其实际工作。

  • 目前我将我的备份驱动器映射到 Z:,当我 CD 到文件夹时,我只是 GIT FETCH(从主服务器所在的配置文件中读取)

  • 如何使用 UNC 做到这一点?这也适用于任务调度程序?

  • 还是问题实际上在其他地方?

4

2 回答 2

1

Git 确实适用于 UNC 路径,但通常将它们用作 Unixy 路径更可靠 -git clone //backupnas/backup/repo.git例如。

作为任务运行时 - 检查权限是否允许您的任务查看具有读取访问权限的远程路径。除此之外 - 脚本中有很多回声并测试运行命令的结果代码。对于最新版本的 msysGit,您可能不再需要“调用 git”,因为包装器 git.cmd 已更改为 git.exe 以解决 ^ 字符的一些引用问题。

于 2012-07-24T10:48:56.900 回答
0

使用 Git 2.24(2019 年第四季度),您可以使用协议明确指定 UNC 路径file://

这修复了git-for-windows/git问题 1264,其中使用此类 URL 失败:

$ git clone file://server/file/path/here
Cloning into 'here'...
fatal: 'C:/Program Files/Git/file/path/here' does not appear to be a git repository
fatal: Could not read from remote repository.

请参阅Torsten Bögershausen ( ) 的提交 ebb8d2c(2019 年 8 月 24 日(由Junio C Hamano 合并 -- --提交 aadac06中,2019 年 9 月 30 日)tboegi
gitster

mingw: 支持UNCgit clone file://server/share/repo

扩展解析器以接受file://server/share/repoWindows 用户期望它被解析的方式,这些用户习惯于通过 UNC 路径引用文件共享\\server\share\folder

加紧检查以避免file://C:/some/path作为 UNC 路径处理。


Git 2.25.2(2020 年 3 月)为此用例添加了测试。

请参阅Johannes Schindelin ( ) 的提交 bfe2bbb(2020 年 2 月 13 日(由Junio C Hamano 合并 -- --提交 fc25a19中,2020 年 2 月 17 日)dscho
gitster

t5580: 测试无克隆file://,通过 UNC 路径测试获取

签字人:约翰内斯·辛德林

在 Windows 上,使用网络驱动器是很常见的。网络驱动器(或“网络共享”或 UNC 路径)的路径格式为:

\\<server>\<share>\...

我们已经围绕这些类型的路径进行了一些回归测试,但是我们错过了在没有前导的情况下从 UNC 路径进行克隆和获取file://(并且使用反斜杠而不是正斜杠)。这个 lil' 补丁缩小了这个差距。

将命令添加到测试脚本的名称有点傻,所以我们在测试更多 UNC 内容时重命名它。

于 2019-10-05T06:25:55.403 回答