标签: git-for-windows

如何在没有 Git Bash 或 GUI 的情况下在 Windows 10 上安装 git?

我正在尝试在 Windows 10 上安装 Git,但没有 Git Bash 或 GUI。我想在 PowerShell 中使用 Git,我不想让我的电脑膨胀。我知道安装大小很小,但这不是问题。

我已经尝试通过 Windows 的 git-SMC/Git 安装程序几次,但似乎我无法选择退出 GUI 和 Bash。知道我该怎么做吗?也许巧克力有什么用?

提前致谢!

windows git powershell git-for-windows

6
推荐指数
2
解决办法
2618
查看次数

如何删除名称以 unicode 字符开头的 git 分支?

使用 GfW 我意外地创建了一个名称以 开头的分支<U+0096>,这似乎是一个 unicode 控制字符。

$ git branch
  features/#72_some_branch
* features/#73_another_branch
  master
  <U+0096>features/#73_another_branch
Run Code Online (Sandbox Code Playgroud)

现在,为了纠正这个错误,我需要知道如何在 git bash 中转义它。我尝试使用众所周知的 Alt+Num 组合键,但这不起作用。

git git-bash git-for-windows

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

具有 GCM Core 的 Windows 版 Git 不保存 Bitbucket 应用程序密码

在一台新机器上,我安装了 Git for Windows 2.37.1.windows.1,其中还安装了 Git Credential Manager Core 2.0.785+6074e4e3d3。我创建了一个Bitbucket 应用程序密码。然后我尝试使用例如访问我的 Bitbucket 帐户上的私人存储库git pull

Git 弹出了 Bitbucket 的身份验证对话框。它有两个选项:使用浏览器进行身份验证,或使用密码进行身份验证。我首先尝试了密码选项。我使用了 Bitbucket 用户名和新创建的应用程序密码。我能够访问存储库。

但是当我尝试完全相同的命令时,它再次弹出身份验证对话框。我一遍又一遍地执行这些步骤。每次它都允许我访问存储库,但似乎凭证没有被保存。

我在 Windows 中打开凭据管理器并看到git:https://bitbucket.org.

我尝试再次访问存储库,但这次我选择了使用浏览器进行身份验证的选项。它将我发送到某个网页,并且由于我已经登录了 Bitbucket 站点,因此它说我已通过身份验证。我能够访问存储库。现在我每次都可以访问存储库而无需身份验证对话框。

请注意,如果我创建GitHub 个人访问令牌并在身份验证对话框中输入它,Git 似乎会保存它,因此我不需要每次都输入它。

为什么 Bitbucket 不存储我的凭据?为什么它要求我通过浏览器进行身份验证?如果我被迫通过浏览器进行身份验证,那么拥有应用程序密码有什么意义?这个具体场景记录在哪里?

更新使用浏览器进行身份验证(Windows 版 Git 中“连接到 Bitbucket”身份验证对话框中的两个选项之一)后,我能够继续使用 Git,而无需在 Windows 10 命令提示符上进行进一步身份验证。啊,但后来我切换到 PowerShell,整个事情又发生了:每次我尝试例如时,我都会收到身份验证对话框git push。每次我都成功使用“密码”选项,使用我的应用程序密码,但它从未保存密码,需要我每次重新输入密码。

所以我再次选择对话框中的“浏览器”选项;它带我到了一个 Bitbucket 网页,上面写着(因为我已经登录了):

身份验证成功 Git Credential Manager 已成功通过身份验证。您现在可以关闭此页面。

现在,我可以git push使用 PowerShell 进行尽可能多的操作,因为我使用“浏览器”进行了身份验证。

所以问题仍然存在:为什么 Bitbucket 的 Git for Windows 身份验证对话框使用保存的应用程序密码,而不是要求我每次重新输入它?(请注意,我已经更新到 Git for Windows 2.37.2.windows.2。)

git bitbucket git-for-windows

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

为什么我的右键单击框中没有“Git Init Here”选项?

我正在尝试开始学习git并使用它。我已经下载了有关该内容的培训视频git,目前正在观看。

我已经下载并安装git在我的电脑上。我使用 Windows 8 操作系统(32 位版本)。Git Init Here但我不知道为什么我右键单击时没有选项:

在此输入图像描述

正如你所看到的,当我右键单击时出现的框有两个关于 git 的选项:

  • Git GUI Here
  • Git Bash Here

但教程视频中的选项还有一个名为 的选项Git Init Here。那么,为什么我的没有这个选项呢?是不是我安装git 错了?

git git-for-windows

5
推荐指数
1
解决办法
1893
查看次数

如何在保留旧设置的情况下更新 Windows 版 Git 客户端?

我多年前安装了 Windows 版 Git。我将它与 Cygwin 一起使用。我也有 Sourcetree,并且我的计算机中的许多 Git 存储库都存在一些问题(但现在不再是了)。

现在,我的旧 Git 无法在 GitHub 上运行,所以我必须更新它。我开始安装 Git,它问了我很多问题。我不记得三年前我为这些选择了什么。我不想冒险破坏任何东西。

那么,有没有一种方法可以在不更改任何设置的情况下更新 Git?

git git-for-windows

5
推荐指数
1
解决办法
6889
查看次数

有什么方法可以强制 grep 理解 Windows 行结尾吗?

在发现 Windows 版 Github 不再打包 Git Shell(我已经越来越喜欢)后,我最近从 GitForWindows 安装了 PortableGit。我希望能够在我的源文件中查找行尾的文本:例如grep -R -n --include "*.py" -P ":$" .。正如所写的,由于 Windows 行结尾,这不起作用 - 我必须使用":\r$"(或者也许更奇特的东西,以便更强大)来代替。这很令人恼火;我发现很难记住,而且我不需要 gVim 中的这种解决方法。我也不记得需要使用 Git Shell 中内置的 grep 实用程序来完成此操作;但 PortableGit 的工具似乎相当严格地按照规定行事。

有什么方法可以强制grep将其视为\r\n行尾,或者如果没有其他改进?我不想将所有源代码转换为 Unix 文件结尾;但如果这就是所需要的,那么我还需要帮助让 gVim 尊重该约定(包括新文件)。(不过,这仍然不理想;我可能还想 grep 程序输出,并且由于我在 Python 中以文本模式编写文件,因此它们自然具有 Windows 行结尾。)

grep line-endings git-for-windows

5
推荐指数
1
解决办法
830
查看次数

无法从 aws 代码提交存储库克隆。回购“未找到”

我在从 AWS CodeCommit 存储库克隆时遇到问题。

据我所知,我已经完成了所有必要的设置步骤。

  • 我已经创建了回购
  • 我已经创建了 git 凭据
  • 我已经完成了以下配置 git ...

    • git config --global credential.helper "!aws codecommit credential-helper $@"
    • git config --global credential.UseHttpPath true
  • 我已经确认我使用的 aws cli 版本与 credential-helper 一起使用

  • 我已经确认我的 cli 环境可以访问我的 aws 帐户,并且当我运行以下命令时可以看到我的 repo...

    aws 代码提交列表存储库

但是,当我尝试克隆 repo 时,它立即返回...

fatal: repository 'https://git-codecommit.ap-southeast-2.amazonaws.com/[my-repo]' not found
Run Code Online (Sandbox Code Playgroud)

它不会提示输入凭据。

如果我尝试直接卷曲 repo URL,我可以看到它返回 401,这大概是正确的。

git version: 2.26.2.windows.1
aws cli version: aws-cli/2.0.17 Python/3.7.7 Windows/10 botocore/2.0.0dev21
Run Code Online (Sandbox Code Playgroud)

我正在尝试在 Windows 10 Pro 上的 powershell 中执行此操作。

关于可能出什么问题的任何想法?

amazon-web-services aws-codecommit git-for-windows

5
推荐指数
1
解决办法
500
查看次数

Windows 版 Git - 每次推送时都要求输入 SSH 密码

我今天安装了 Windows 版 git 并做了一些测试,我发现每次推送时都会要求我输入密码(Linux 上不会发生这种情况)。

我对另一个线程提出了一些建议,我发现我没有配置 ssh-agent,但我这样做了,问题仍然存在。

图像

有什么建议吗?谢谢!

git ssh git-for-windows

5
推荐指数
1
解决办法
2895
查看次数

Windows 版 Git 似乎创建了永不消亡的子进程

我使用以下代码git从 C# 进行调用:

var pInfo = new ProcessStartInfo
{
    FileName = "git",
    Arguments = "checkout master",
    UseShellExecute = false
};

using var p = Process.Start(pInfo);
Console.WriteLine(p.Id);
p.WaitForExit();
Run Code Online (Sandbox Code Playgroud)

打印的进程 ID 是,比如说 3709。当我的程序结束时,我查看任务管理器,看到一个git.exe进程仍在以不同的 ID 运行,比如说 8865。这个进程仍然无限期地运行。

在我看来,git我的程序启动的进程会产生第二个git永远不会退出的进程。我有什么办法可以阻止这种行为吗?事实上,每次我运行程序时,都会git.exe无限期地留下另一个进程,随着时间的推移,数量会增加很多,直到我重新启动。

git(或者,除了运行可执行文件之外,还有其他方法可以调用吗?)

c# process git-for-windows

5
推荐指数
1
解决办法
738
查看次数

“includeif”在 git-for-windows 上不起作用

我最近升级了git version 2.33.1.windows.1
,但includeif似乎不起作用。
还有人可以确认吗?我不记得我以前的 git 版本是什么。

我的配置如下:

.gitconfig

[user]
  name = crowne
  email = crowne@fakemail.com
[includeIf "gitdir:E:/work/**"]
  path = ~/.gitconfig_work
Run Code Online (Sandbox Code Playgroud)

.gitconfig_work

[user]
    name = name.surname
    email = name.surname@work.com
Run Code Online (Sandbox Code Playgroud)

我升级的原因是,它includeif没有
在下面嵌套多个目录的目录上递归生效E:/work/

自从升级之后,似乎根本没有生效。

>git config -l --show-origin

仅显示来自以下内容的条目:

  • C:/Program Files/Git/etc/gitconfig
  • C:/Users/crown/.gitconfig

我没有看到来自以下位置的任何条目:

  • C:/Users/crown/.gitconfig_work

git git-for-windows

5
推荐指数
1
解决办法
2169
查看次数