问题标签 [git-for-windows]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - Git bisect 运行错误,您需要从“git bisect start”开始
我有一个tests.sh
文件。
该文件仅包含exit 0
或exit 1
。0
对于前几个提交,1
剩下的(我认为)表示前几个提交是good
,其余的是bad
.
我在跑步$ git bisect run ./tests.sh
。但是它告诉我我需要从git bisect start
.
我试过git bisect start
先跑步,然后说这HEAD
是不好的,但没有成功。
我在这里做错了什么?
c# - 没有完全提取的 2 个标签之间的 Git diff 使用 git-bash.exe 运行失败
我正在尝试使用Process
. 传递给 git-cmd.exe 的以下命令git diff
在 2 个分支之间发生时成功运行。
<folder1>
我需要在给定的分支之间找到仅修改或添加的文件名。我通过将它们作为 a 传递string[]
给函数来执行这些命令。
由于性能问题,我们现在开始处理标签。所以,我现在正在做:
在这里,diff 命令失败:
致命:无效的对象名称“[tag1]”。
我尝试从 手动运行一些命令git-cmd.exe
,但我发现git checkout refs/tags/[tag1]
自己失败了:
错误:pathspec '[tag1]' 与 git 已知的任何文件都不匹配。
这是否意味着我的本地存储库没有任何信息[tag1]
?如果没有,那么为什么在获取它们时没有错误?任何人都可以在这里提出建议,我如何才能只获取这两个标签并在它们之间做一个差异?
试过git diff tag1 tag2,但它失败了:
致命:不明确的参数“[tag1]”:未知修订版或路径不在工作树中。
请让我知道是否需要我在这里提供更多输入。另外,我不能做 agit fetch --tags
因为它挂起(我想,这不是这里的问题,因为单独获取标签不会挂起)。补充一点,我的组织不允许使用https://github.com/libgit2/libgit2sharp/。
编辑:
正如@torek 所建议的,agit fetch refs/tags/tag1
是一种错误的方法。我现在已将其更新为:
该命令运行良好git-cmd.exe
,我能够获得差异。但是当我通过process
. 我的 SSH 存储库没有密码短语,因此可以肯定它RSA Aunthentication
没有失败。这里有什么建议吗?我是否通过该过程正确触发了命令?
git - 请求 git 始终丢弃特定文件的本地更改
有没有办法告诉 git 始终忽略并丢弃已提交文件的本地更改?
我已经阅读了这些选项,但似乎都不是我想要的。
这种情况是有一个特定的文件需要存在才能编译,但是某些工具在构建过程中经常对其进行无意义的更改(标记版本号或添加/删除无关紧要的空白)。(它不是“生成的文件”——它确实包含独特的重要内容。它也会被构建工具修改。不幸的是,修复构建过程不是一个选项。)
结果,它总是在本地修改,我总是必须记住在提交或拉取之前恢复它,否则我会遇到冲突或创建提交,其中包含相同的毫无意义的不相关更改。(例如,在检查另一个分支时,我总是会遇到冲突,部分原因是无意义更改的不同实例与每个分支中的有意更改一起被烘焙。)
我想要的是 git 在上游更改时始终用上游副本覆盖本地文件(无论是否有本地更改),然后继续这样做而无需再次切换它。
(我从字面上从来没有对一个这样的文件进行有意更改。另一个我很少对另一个文件进行有意更改的文件,但我可以在这种情况下记住取消设置“丢弃本地”标志并在之后再次设置它,并且我不在乎我是否忘记并且有意的更改丢失了——这比结帐失败要好。)
git-config - 适用于 Windows 的 Git:将 [winUpdater] 部分移出 .gitconfig
我通过 git 存储库在多个系统之间共享我的点文件,其中包括全局 .gitconfig 文件。
现在我也想将这些文件导出到 Windows 系统并在 git-bash 环境中使用它们。我注意到我当前的 .gitconfig 包含 [winUpdater] 部分。我假设它的内容会定期自动更新,所以我需要注意不要将这些更改推送到我的公共存储库。
可以将我的共享 .gitconfig 文件隐藏在包含指令中,并使全局 .gitconfig 几乎为空,但这也不是很方便。
我想知道是否有办法将 winUpdater 配置为使用不同的文件进行版本跟踪。
git-lfs - 在本地禁用 git LFS Locking api,因为它超慢?
我倾向于尝试在 Stack Overflow 上回答很多 git 问题,但这样做时,我喜欢先在本地建立一个或两个虚拟存储库,然后在发布之前测试我的建议。
最近我买了一台新电脑,我想我现在的配置有些不同,或者我已经有一段时间没有在本地使用 git 来做这种事情了,因为在本地推送时引入了很大的延迟。
让我举个例子:
最后一条命令在输出之前有大约 12 秒的延迟:
问题是,我可以在本地使用这些命令时禁用此 LFS 锁定 api 探测或它在此处执行的操作,而无需添加--no-verify
所有此类推送?基本上,我想像往常一样使用 git,而不必记住 git lfs 探测似乎在本地被破坏了。
我不想为所有git 与遥控器的交互禁用此 LFS 功能,因为我在 github 上至少有一个存储库用于使用它。“它”是 LFS,这个 LFS 锁定是否可能不需要并且我可以全局关闭它?
或者这可能是某种错误,我真的应该这样报告吗?
这是 Git 2.24.1.windows.2,Windows 10 build 1909,在 AMD Ryzen 5 3600 上针对 M.2 2GB/sec SSD 运行,所以我认为“慢速计算机或磁盘”也不是真正的问题。
我发现的唯一提供的方法是我要么指定--no-verify
所有此类推送,要么明确提供禁用它的每个存储库配置,就像git push
上面建议的那样。我真的不喜欢这两种解决方案,还有其他的吗?
如果我发出这个推送命令:
它在几分之一秒内完成。基本上我的问题是,是否有一种方法可以配置 git,以便所有本地推送都具有这种速度,而不必显式配置存储库或不必每次都指定 --no-verify。
git - 使用 git clone 命令克隆时拒绝访问
克隆我的存储库时出现以下错误:请建议
windows - 为什么 Linux git 在 Windows WSL 中运行并在 NTFS 文件系统上运行时不创建正确的 Windows 符号链接?
当我运行 WSL bash shell 时,我可以使用“ln -s”命令来创建符号链接。无论我是使用 NTFS 文件系统还是 WSL 文件系统,符号链接都会按预期创建。具体来说,WSL 文件系统中的链接就像 Linux 符号链接一样工作,而 NTFS 文件系统中的符号链接是 Windows 符号链接,我可以在 WSL 和 Windows 中使用它。
将其与在 WSL 中运行的 Linux 版本的 git 中符号链接的工作方式进行对比。我克隆了一个包含指向 NTFS 文件系统的符号链接的存储库。我不确定链接是什么,但它们绝对不是 Windows 符号链接。
有人可能会说我应该使用 Git for Windows,它会在我克隆 repo 时创建正确的 Windows 符号链接。唯一的问题是我们有编写为每个人都使用的 bash 脚本的工具,这些工具称为 git。它们在 Linux 上运行良好,但在 WSL 中,由于符号链接问题,它们的性能不如预期。我发现我需要在 WSL 中运行所有命令行开发人员工具,以便它们可以相互调用并传递文件路径和环境变量等。所以对于我来说,为 Windows 运行 Git 真的不是一个选择。
有没有办法解决这个问题?如果 WSL bash shell 可以正常运行,那么 Linux 版本的 git 中的一个小改动肯定也可以解决这个问题。这闻起来像是 Windows 和 Linux 之间的某种哲学斗争。或者是否存在早于 Windows 的 Git 的遗产......在这种情况下,肯定有一种方法可以为那些想要使用 Windows 符号链接的人启用对符号链接的新处理。
git - 致命:无法访问getaddrinfo() 线程无法启动
当我输入:git push origin master
错误 :
我该怎么办?
git - Git 认为我的子模块中的东西是主仓库的一部分
在我的子模块中单独提交和推送代码的过程中,根仓库突然认为我的子模块中的代码实际上是根仓库的一部分;也就是说,作为子模块一部分的文件现在显示为要添加到根存储库中的未暂存文件。我通过运行验证了这一点git status
。
几乎就像 git 忘记了子模块之类的东西,并认为我添加了所有这些文件。我确实注意到子模块有一个.git
文件而不是.git
目录。在文件中有这一行
gitdir:../.git/modules/root-repo
并且根存储库具有.git/modules/sub-repo
预期的文件夹。
我如何回到正确的状态?
我想我可以再次克隆根存储库并递归更新子模块,但这似乎很繁重。