相关疑难解决方法(0)

Git中的"瓷器"一词是什么意思?

Git文档中偶尔出现"瓷器"一词.这是什么意思?

git terminology

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

阻止 git 将非错误写入 stderr

我有一个脚本,用于自动同步各种远程 git 存储库。我试图用我的脚本做的一件事是从每个命令中捕获 stderr 的输出,并将所有这些错误写入一个文本文件,然后在脚本完成后通过电子邮件发送给我。这将提醒我需要解决的任何问题。不过,我在以下两行中遇到了问题:

{
    git fetch --prune-tags github-fetch master
    git push github master 
} 2> '/tmp/stderr-contents-sync_git_repositories.txt'
Run Code Online (Sandbox Code Playgroud)

问题是该git fetch行正在将以下内容写入 stderr:

From https://github.com/XJDHDR/xjdhdr-random-code.wiki
 * branch            master     -> FETCH_HEAD
   13af304..333d602  master     -> github/master
Run Code Online (Sandbox Code Playgroud)

git pull条线是这样写的:

To ssh://github.com/XJDHDR/xjdhdr-random-code.wiki.git
   333d602..da65970  master -> master
Run Code Online (Sandbox Code Playgroud)

我的问题是这些都不是错误,每次运行脚本时都会通过电子邮件发送。我想知道是否有可能阻止 git 将这些非错误写入 stderr 或从 stderr 输出中过滤出这些类型的消息,同时保留真正的错误。

git bash stderr

11
推荐指数
1
解决办法
1381
查看次数

从Powershell运行"Git-Clone"即使看起来有效也会出错

如何解释来自调用"Git Clone"(实际使用GitLab)的PowerShell脚本的错误.我可以克隆一个空目录并使其工作而不会出错吗?

$path1 = "d:\GitPath" 
$path2 = "${path1}\mycompany-mygroup-nealtestautomation01-map"
$gitLabHttp = "http://git.mycompany.com/MyGroup/nealtestscriptaddedproject.git"
$gitLabHttp = "http://git.mycompany.com/MyGroup/mycompany-gwcustomers-nealtestautomation01-map.git" 
rd $path2 
cd $path1
git clone $gitLabHttp --local --verbose
Run Code Online (Sandbox Code Playgroud)

输出:

git : Cloning into 'mycompany-mygroup-nealtestautomation01210-map'...
At D:\Scripts\GitCloneTest.ps1:7 char:1
+ git clone $gitLabHttp --local --verbose
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Cloning into '...mation01-map'...:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

warning: --local is ignored
warning: You appear to have cloned an empty repository.
Run Code Online (Sandbox Code Playgroud)

我想要使​​用此代码的任何更大的脚本,我包括:

$ErrorActionPreference = "Stop"  #Special Poweshell Syntax to Stop on First Error 
Run Code Online (Sandbox Code Playgroud)

这样它就会在第一个错误时停止.

即使我在一个非空的项目上运行它,我看到红色和类似于上面的错误(在此次运行中使用--local和--verbose): …

git powershell-4.0

6
推荐指数
1
解决办法
1141
查看次数

Git 钩子。如何从用户输入中读取变量?

我正在尝试创建一个预提交挂钩。我希望它能够与用户交互。所以,我发现我可以使用
read -p "Enter info: " info
或者 只是
read info


我创建了一个文件:
预提交:

#!/bin/sh
read -r input
echo $input
Run Code Online (Sandbox Code Playgroud)

它只应该读取变量并输出它。但这不起作用。我的意思是它不能作为钩子使用。如果我使用终端运行它./.githooks/pre-commit,一切都好。但是当我使用 时git commit -am "Hook",它会回显空字符串并且不读取任何内容。难道我做错了什么?

Git版本是2.28.0.windows.1

git bash githooks git-bash

6
推荐指数
1
解决办法
1464
查看次数

PowerShell捕获Git输出

问题

我正在通过PowerShell运行一些git命令,但我在捕获输出时遇到问题.

在我尝试使用之前,我所研究的许多方法都未能捕获任何输出Out-File.不幸的是,尽管这对我来说有多好,但我发现git push命令出了问题,导致我无法捕获输出...

我的代码如下:

git add . | Out-File $logFilePath -Append
git status . | Out-File $logFilePath -Append
git commit -m "Some Relevant update message" | Out-File $logFilePath -Append
git push origin $branchname | Out-File $logFilePath -Append
Run Code Online (Sandbox Code Playgroud)

当我查看日志文件时,它会显示除了输出之外的所有内容git push.因此,在对此进行故障排除时,我| Out-File从行中删除了,并注意到即使输出窗口也没有显示输出git push.只有当我完全删除Out-File所有git命令时,我才能使输出再次按预期显示.不幸的是,这让我回到原点.

有谁知道如何使用PowerShell最好地捕获git命令的输出,或者可以指出我做错了什么?

git powershell logging

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

git命令的输出未完全重定向到文件

git fetch命令的输出test1从以下cmd 重定向到“ ”文件:

manish@rigved:~$ git fetch --all --prune > test1
From https://github.com/Beawel/wwwnew
 x [deleted]         (none)     -> origin/test
Run Code Online (Sandbox Code Playgroud)

问题:但是x [deleted] ...输出中显示的“ ”行未重定向到test1,为什么?请提出建议。

为什么git命令会在stderr上打印明显不是错误消息的内容?

manish@rigved:~$ cat test1
Fetching origin
Run Code Online (Sandbox Code Playgroud)

git redirect

2
推荐指数
1
解决办法
711
查看次数