当我的当前目录不在存储库中时,我可以对存储库中的文件执行 git 操作(add/diff/commit)吗

2024-03-18

使用 svn,我可以在结账时对文件运行命令,而无需cd首先进入结帐处。例如:

# Located in /tmp, running svn operation on /home/d5ve/checkout
d5ve@host:/tmp> svn add /home/d5ve/checkout/myfile.txt
d5ve@host:/tmp> svn diff /home/d5ve/checkout/myfile.txt
d5ve@host:/tmp> svn commit /home/d5ve/checkout/myfile.txt

当我使用 git 尝试此工作流程时,出现错误:

# Located in /tmp, attempting git operation on /home/d5ve/checkout2
d5ve@host:/tmp> git add /home/d5ve/checkout2/myfile.txt
fatal: Not a git repository (or any of the parent directories): .git

我尝试过使用--git-dir and --work-tree标志,但这似乎也失败了。

git 人们有什么建议吗?我经常使用这个工作流程,并且在使用 git 时真的很怀念它。

2016年更新当前正确的答案是使用-Cflag 到 git,它是在 2013 年的 1.8.5 版本中引入的。参见https://stackoverflow.com/a/35899275/357336 https://stackoverflow.com/a/35899275/357336

UPDATE:根据下面的lunaryorn答案,我创建了一个简单的perl脚本,它从文件路径中计算出.git目录的位置,并为命令设置GIT_WORK_TREE和GIT_DIR环境变量。

请看一下:http://github.com/d5ve/rgit http://github.com/d5ve/rgit

用法:rgit 命令 [ARGS]

基本上只需更换git with rgit在命令中,您可以从存储库外部运行命令。

cd /tmp    
rgit diff /home/d5ve/checkout1
rgit add /home/d5ve/checkout1/rgit.pl
rgit commit /home/d5ve/checkout1/

您必须同时使用这两个选项:

git --git-dir=/home/d5ve/checkout2/.git --work-tree=/home/d5ve/checkout2/ add /home/d5ve/checkout2/myfile.txt

注意--git-dir不是指包含工作副本的目录,而是指.git子目录,其中包含存储库本身。 git 提供了两个环境变量来为会话永久设置这些选项:

export GIT_WORK_TREE="/home/d5ve/checkout2"
export GIT_DIR="${GIT_WORK_TREE}/.git"
git status
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我的当前目录不在存储库中时,我可以对存储库中的文件执行 git 操作(add/diff/commit)吗 的相关文章

  • 如何像对待普通目录一样对待嵌套存储库(子模块)?

    我的 WordPress 网站是使用 Git 进行版本控制的 包括wp content plugins 文件夹 现在有一个插件 wp editormd 带有自己的 Git 存储库 wp content plugins wp editormd
  • 使用 GIT 自动增加 AssemblyFileVersion

    好吧 我知道这可能不是传统的 但除此之外 我使用 AssemblyFileVersion 作为我的 构建名称 字符串 它的格式如下 File Version information for an assembly consists of t
  • 判断 Git 提交是否是合并/恢复提交

    我正在编写一个脚本 需要检查特定提交是否是合并 恢复提交 我想知道是否有 git 技巧 到目前为止我想到的 我绝对不想依赖这里的提交消息 是检查HASH 2看看我是否没有收到错误 是否有更好的方法 判断某个东西是否是合并很容易 这是不止一位
  • Git:结帐而不运行结帐后挂钩

    我有一个我喜欢的结帐后挂钩 大多数时候 但有时我知道运行它会浪费时间 或者 因为它会删除并重建我的开发数据库 所以我不希望它去做它的事情 有没有跳过钩子的 git 选项 公平地说 我已经开始寻找一个了 我认为没有命令行选项可以完成您想要的操
  • 如何预览 Git 中的隐藏内容?

    我想检查一个存储 并找出如果我将其应用于当前状态的工作树 它会发生什么变化 我知道我可以对存储进行 git diff 但这向我展示了工作树和存储之间的所有差异 而我只是想知道存储应用将改变什么 git stash show将向您显示最近存储
  • Git:如何使外部存储库和嵌入式存储库作为通用/独立存储库工作?

    我有一个大项目 比方说A repo 其中有一个子文件夹来自B repo 当我提交时 我会遇到如下警告A repo warning adding embedded git repository extractor annotator serv
  • git在Windows和Linux之间切换后强制刷新索引

    我有一个Windows和Linux共享的磁盘分区 格式 NTFS 它包含一个 git 存储库 约 6 7 GB 如果我只使用Windows or 只使用Linux操作 git 存储库一切正常 但是每次切换系统的时候git status命令将
  • 节点项目的 Azure git 部署失败

    我正在尝试将我的项目部署到azure 它正在失败 这些是我采取的步骤 git init git config core longpaths true git add git commit m initial commit 所有这些都有效 我
  • 在 git repo 中查找超过 x MB 且 HEAD 中不存在的文件

    我有一个 Git 存储库 用于存储随机的内容 主要是随机脚本 文本文件 我设计的网站等 随着时间的推移 我删除了一些大型二进制文件 通常为 1 5MB 这些文件会增加存储库的大小 而我在修订历史记录中不需要这些文件 基本上我希望能够做到 m
  • git 可以与 Xcode 集成吗?

    有没有办法将 git 存储库与 Xcode 内置的 SCM 功能一起使用 Xcode 4 原生支持 git WWDC 2010 上的开发者工具国情咨文演讲 在这里了解更多 Xcode 4 中的新增功能 http developer appl
  • Git 无效的修订范围 Symfony2 Composer 外部包

    RuntimeException Failed to execute git log 18efcf67d236d5bbf46ac67820250dffd0474b6e 94e2146f525fa1367e15646fa273e5b34f92
  • refname 不明确且拉取失败

    我运行了以下命令 因为我想将生产分支移回而不必先签出 git branch f production HEAD 1 现在 当我检查生产时 我收到以下警告 warning refname production is ambiguous 然后我
  • 如何 git grep 仅一组文件扩展名

    如何执行 git grep 并将检查的文件限制为一组文件 我希望能够 grep cpp 和 h 文件的内容来查找 MyFunc 例如 git grep MyFunc hc 但是 这也匹配 c 文件和 cs 文件 Use git grep M
  • 有谁知道类似于 SVN Time-Lapse View 的 Git 工具 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 SVN Time Lapse View 是一个跨平台查看器 可以下载文件的所有修订版本 并允许您通过拖
  • git Push over sshfs 失败,并显示“关闭 sha1 文件时出错:错误的文件描述符”

    我们使用 sshfs 通过 SSH 安装文件系统 并将其用作 git 存储库协作的远程存储 Mac OSX 10 6 6 到 RHEL 3 服务器 SSHFS 版本 2 2 MacFUSE SSHFS 2 2 0 MacFUSE 库版本 F
  • 哪个是更智能的 git 协议,ssh 或 git(通过 ssh)或 https 协议?

    哪个高效 SSH 或 Git 文件压缩 我对 Git 的理解是 git 协议很智能 因为通信两端都有一个协议代理来压缩文件传输 从而通过有效地使用网络带宽来实现更快的克隆 From 我发现了以下说法 For secure authentic
  • 丢失了我在 GIT 中的提交。你会不小心删除提交吗?

    我正在使用 git gui 但看不到我的分支 我知道我今天检查了一些东西 在完成提交并使用分支查看器验证后 我更改为较早的分支 我对之前的分支进行了更改 然后想返回到当前的分支 但我再也看不到它了 任何帮助都会很棒 回答你的问题 在大多数情
  • 默认情况下 git merge -Xignore-space-change

    我该如何设置该选项ignore space change对于所有合并使用git config 我也许可以使用别名merge 但因为我希望该设置应用于git stash pop git stash apply git pull and git
  • Git - 创建拉取请求而不分叉

    使用 git 已经有一段时间了 关于 git pull request 有很多教程和解释 其动机是什么等等 我遇到两种情况 1 分叉 git 仓库 我查看了一些公共 git 存储库并决定我想要做出贡献 所以我 通过以下方式创建重复的存储库F
  • Ansible bitbucket 克隆存储库配置 ssh 错误

    我之前发布过这个问题 但那里的答案不再有效 总之 当使用 Ansible 配置我的 vagrant box 时 在尝试使用 ssh 克隆我的 bitbucket 私有存储库时 我遇到了一个神秘的错误 该错误指出 权限被拒绝 公钥 然而 如果

随机推荐

  • 将位图图像保存到 SD 卡 - API 1.5 中存在问题?

    知道为什么这不适用于运行 Android API 1 5 的 HTC Hero 吗 private static void Save to SD Bitmap bm String image name String extStorageDi
  • SQLExecDirect 中的游标状态无效,SQL 状态 24000

    我需要在 PHP 中通过 ODBC 依次调用两个存储过程 run stored procedure 1 query Shipped Not Shipped Rep GET rep id result odbc exec dbh query
  • 在自定义类型上使用集合初始值设定项语法?

    我有一个很大的静态列表 它基本上是一个查找表 所以我在代码中初始化该表 private class MyClass private class LookupItem public int Param1 get set public int
  • 垂直 xtick 标签位于顶部,而不是底部

    我想使用 Pylab 绘制混淆矩阵 沿水平轴的类标签很长 所以我想将它们垂直旋转绘制 但是 我也想将它们绘制在轴的顶部 而不是下面 此命令可以在底部绘制垂直标签 pylab imshow confusion matrix pylab xti
  • 访问脚本主模块内定义的python类变量

    我有一个 Django 项目 它使用 celery 进行异步任务处理 我正在使用Python 2 7 我在模块中有一个类client py在我的 Django 项目中 client py class Client def init self
  • 显示Java 8流处理的进度

    我有一个Stream处理数百万个元素 其背后的Map Reduce算法需要几毫秒 因此任务完成大约需要二十分钟 Stream
  • python tkinter如何将按键绑定到按钮

    编程新手 尤其是 python 和 tKinter 如何创建一种将键 s 绑定到按钮或功能的方法sharpen 任何帮助都是极好的 from Tkinter import from PIL import Image ImageTk Imag
  • VHDL 中的 NULL 语句

    其实际目的是什么nullVHDL 中的声明 考虑以下代码 1 CASE s IS BEGIN WHEN 0 gt y lt 0 WHEN 1 gt NULL END CASE 2 CASE s IS BEGIN WHEN 0 gt y lt
  • 如何在 asp.net mvc 中通过自定义 jQuery 验证复选框列表

    我有一个复选框列表 我想在客户端使用 jQuery 进行验证 但失败了 我已经在我的项目中添加了 unobtrusive 和 jquery 验证插件 型号代码为 Required public string name get set Ski
  • 不使用 matlab 提取 .mat 数据 - 尝试 scilab 失败

    我已经下载了一个我感兴趣的数据集 但是 它是 mat 格式 并且我无法访问 Matlab 我用谷歌搜索了一下 它说我可以在 SciLab 中打开它 我尝试了一些东西 但我还没有找到任何关于这方面的好的教程 I did fd matfile
  • Socket.EndRead 0字节表示断开连接?

    我想知道在 C 中的异步套接字中 在 EndRead 调用中接收到 0 字节是否意味着服务器实际上已与我们断开连接 我看到的许多例子表明情况确实如此 但我收到的断开连接比我预期的要频繁得多 这段代码正确吗 或者 endResult priv
  • 使用 DDD 方法在 Python 中保留 POJO

    我正在尝试使用 DDD 模式创建 Flask 应用程序 DDD 的核心原则之一是将领域与持久性 基础设施 分离 我已在模块中定义了域模型 并将在基础设施模块中创建存储库 但是 我似乎找不到任何关于如何在 Python 中持久保存 POJO
  • 如何从 MongoDB 获取数据?

    我正在尝试使用 Express MongoDB 构建 React 应用程序 我能够将一些文档发布到 MongoDB 目前 我正在尝试弄清楚如何将获取的数据打印到屏幕上 我有这些路线 router post totalbalance requ
  • 使用 c 访问 /Private/etc

    这可能是一个简单的问题 但如何在 c 控制台应用程序中向用户 请求 系统 根权限 我需要写信给 Private etc 但我不能 这是针对 mac unix 的 我已经看到它被用在其他控制台命令中 例如当您运行以下命令 sudo Syste
  • 在嵌入式 HSQL 数据库中创建架构的最佳方法

    我目前正在使用以下设置在嵌入式数据库中创建一个架构 然后再针对它运行测试 在我的应用程序上下文中
  • 求以下代码的上限和下限

    我需要找到以下代码的最接近的上限和下限 我是这方面的初学者 对我的错误感到抱歉 p 的上限为 O log n 下限为 O 1 notp 的上限为 O log n 下限为 O 1 我认为下界是 O 1 因为如果我有 n 4 那么我进入循环并且
  • 隐藏 Material-UI 自动完成弹出窗口,直到键入文本

    我有一个可用的 Material UIAutocomplete已实现 但是目前当您单击选择一个项目时 除了文本搜索之外 它还会显示所有项目的可单击下拉列表 我希望这样在先输入某些内容之前不会显示下拉选项
  • 选择不同的经度和纬度值并找到它们的中值

    我正在使用 Google Maps API V3 和 jQuery 创建 Phonegap 应用程序 当检测到坑洼时 应用程序将经度和纬度值分别存储在 MySQL 数据库中 我需要做的是选择任何相对接近且很可能是相同坑洞的值 jQuery
  • Java 中的增量模式 (RegEx) 匹配?

    有没有一种方法或一个有效的库允许在Java中进行增量正则表达式匹配 我的意思是 我希望有一个 OutputStream 我可以一次发送几个字节 并跟踪到目前为止与正则表达式的数据匹配 如果接收到一个字节 则肯定会导致此正则表达式not比赛
  • 当我的当前目录不在存储库中时,我可以对存储库中的文件执行 git 操作(add/diff/commit)吗

    使用 svn 我可以在结账时对文件运行命令 而无需cd首先进入结帐处 例如 Located in tmp running svn operation on home d5ve checkout d5ve host tmp gt svn ad