如何从另一个分支获取一个文件

2024-03-26

我有一个main带有名为的文件的分支app.js。我对此文件进行了更改experiment branch.

我只想应用所做的更改app.js from experimentmain branch.


git checkout main                 # first get back to main
git checkout experiment -- app.js # then copy the version of app.js 
                                  # from branch "experiment"

也可以看看撤消 Git 中一个文件的工作副本修改 https://stackoverflow.com/q/692246/6309.


2019 年 8 月更新,Git 2.23

随着新git switch https://stackoverflow.com/a/57066202/6309 and git restore https://stackoverflow.com/a/57066072/6309命令,那就是:

git switch main
git restore --source experiment -- app.js

默认情况下,仅恢复工作树。
如果您还想更新索引(意味着恢复文件内容,and通过一个命令将其添加到索引中):

git restore --source experiment --staged --worktree -- app.js
# shorter:
git restore -s experiment -SW -- app.js

As 雅库布·纳伦布斯基 https://stackoverflow.com/users/46058/jakub-narebski评论中提到:

git show experiment:path/to/app.js > path/to/app.js

也有效,除此之外,如 SO 问题中所述“如何从 Git 中的特定修订版检索单个文件? https://stackoverflow.com/questions/610208/how-to-retrieve-a-single-file-from-specific-revision-in-git/610315#610315”,您需要使用存储库根目录的完整路径。
因此,Jakub 在他的示例中使用了 path/to/app.js。

As Frosty https://stackoverflow.com/users/7476/frosty评论中提到:

你只会得到 app.js 的最新状态

但对于git checkout or git show,您实际上可以参考您想要的任何修订,如SO问题所示“git checkout git gui 中文件的修订版本 https://stackoverflow.com/questions/1507300/git-checkout-revision-of-a-file-in-git-gui/1507678#1507678":

$ git show $REVISION:$FILENAME
$ git checkout $REVISION -- $FILENAME

与 $FILENAME 相同完整路径版本化文件的。

$REVISION可以如图所示git rev-parse http://www.kernel.org/pub/software/scm/git/docs/git-rev-parse.html:

experiment@{yesterday}:app.js # app.js as it was yesterday 
experiment^:app.js            # app.js on the first commit parent
experiment@{2}:app.js         # app.js two commits ago

等等。

schmijos https://stackoverflow.com/users/430418/schmijos adds 在评论中 https://stackoverflow.com/questions/2364147/how-to-get-just-one-file-from-another-branch/2364223#comment93480592_2364223:

您也可以从藏匿处执行此操作:

git checkout stash -- app.js

如果您正在处理两个分支并且不想提交,这非常有用。

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

如何从另一个分支获取一个文件 的相关文章

  • 签入时 git-tf 告诉我“无法锁定”;我该如何修复它?

    我正在使用 git tf 推送到 TFS 项目 有时 当我尝试检查 TFS 中的一个或多个提交时 我会收到如下消息 正在连接到 TFS 签入 MyProject 0 git tf 无法锁定 MyProject 这是什么意思 是什么让我无法锁
  • Git 与 master 合并,无需签出 master

    每次我需要的时候merge develop with master I do git checkout master git merge develop 有时我忘记切换出去master 因此 我在运行时错误地更改了代码master 它可能会
  • 添加和提交文件后Git推送不起作用

    I m new to Github and Git tried to use gitbash on Windows After adding and committing files If I add the git push cmd Th
  • 樱桃选择问题:还应用了之前提交的更改

    在我的项目中 我几个月前发布了一个版本 在该版本发布之后 我在 master 分支上做了很多更改 如果我遇到上一个版本中存在的一些错误 我会在主分支上修复它们 然后将它们挑选到我在上一个版本中创建的分支 然后我可以提供一个仅包含错误修复的新
  • git push origin master 失败

    我正在尝试将现有文件夹上传到 gitHub 按照说明 我在 Windows 中输入了以下内容 git remote add origin email protected cdn cgi l email protection myname m
  • TortoiseGit 与 TortoiseSVN 并存?

    我已经使用 TortoiseSVN 好几年了 但我正在考虑慢慢改用 git 因为我真的很喜欢它的分支和合并 我目前正在通过命令行使用 git 但正在考虑安装 TortoiseGit 有人有并排使用两只乌龟的经验吗 这有什么已知的问题吗 我真
  • 无法通过 HTTPS 克隆私有 Github 存储库

    我在通过 HTTPS 克隆私有 GitHub 存储库时遇到问题 如果我尝试使用以下方式克隆我的存储库 git clone https github com username repository 我收到错误 fatal remote err
  • 在家庭和办公室进行开发,GIT 会比使用 xcopy 的 SVN 更容易吗?

    如果出于安全原因 源代码只能存储在我的家庭计算机和办公室计算机上 如果传输代码的唯一方法是 USB 密钥 那么哪种源代码控制是最好的 SVN还是GIT 注意 两台计算机之间没有网络连接 我推荐git 无论哪种方式 您都需要 USB 密钥上的
  • 为 3 人团队设置 Git?

    这篇文章的目的是总结所有信息 为 3 人参加比赛建立一个封闭的存储库 请随意将我没有注意到的问题添加到列表中 请将每个问题的每个答案添加为单独的答案 情况一 草稿和文件可以在3人之间交换 这 writer 只能将文件推送到 存储库 情况B
  • 使用与后期步骤中的 Shell 脚本中的克隆相同的 http git 凭据

    我想要自动化我们的发布过程 并且我有一个 Maven 项目的以下 Jenkins 构建作业 使用配置的 Jenkins 凭证 用户名 密码 克隆 Git 存储库 执行一些 Maven 命令以进行构建 配置一个后步骤来执行一些额外的 Git
  • BitBucket+Jenkins:仅在特定分支更改时触发构建

    以下是该问题的据称解决方案 尽管它看起来确实是一种解决方法 而不是最终的解决方案 有没有一种方法 通过作业配置或 bitbucket 挂钩配置 我可以将作业设置为仅在推送到特定分支时运行构建 是否可以仅从一个特定分支触发 Jenkins h
  • 即使给出了公钥,Gitosis 也需要密码

    我在 Archlinux 上尝试配置 gitosis 时遇到了一些问题 http wiki archlinux org index php Setting Up Git ACL Using gitosis http wiki archlin
  • 理解 git log --stat 输出

    我试图理解的输出git log stat命令 第一个输出 commit 4c90aee323acc337a37040e02a0a3644f4155738 Date Fri May 1 22 46 11 2015 0400 Submittin
  • 使用 'gitbranch' 命令显示当前 git 分支

    我在处理太多分支时遇到问题 需要花费很多时间才能找到我现在正在处理的当前分支 有没有办法在使用时显示的列表顶部列出当前分支git branch命令 如果您只想要签出分支 请使用git branch show current
  • Git 二进制文件与 .gitattributes 中的 -diff

    在 gitattributes 中有以下等价内容 chm binary chm diff 我努力了 chm二进制文件 但恐怕它仍然可能尝试合并这些文件 是 diff更适合我打算做什么 另外 在提交给定类型的文件后 此设置是否适用 Thank
  • 从历史记录中删除不需要的文件,包括带有过滤分支的所有引用

    我最近克隆了一个 SVN 存储库 其中曾经有一些二进制文件 但不再需要了 不幸的是 我已经将它和包含的二进制文件推送到了 Github 我现在想使用 git filter branch 删除它们 但在标签和分支方面我遇到了一些问题 基本上
  • 如何对 git 子模块使用相同的协议?

    在 git 存储库 R 中 我有一个使用以下命令初始化的子模块 git submodule add git mygitserver 现在用户刚刚使用克隆 Rhttps并在运行时出现错误 git submodule init git subm
  • Git推送更新远程服务器信息失败

    当我尝试将新分支推送到远程源时 出现以下错误 我能够在现有分支上推送提交 并且现有分支上没有问题 git push u origin master1 Fetching remote heads refs refs tags refs hea
  • git-daemon 的日志保存在哪里? (Windows 上的 Git 使用 Cygwin)

    我正在将 git daemon 作为 Windows 服务运行 使用创建进程 服务中使用的命令是 git daemon reuseaddr base path data test work export all verbose enable
  • 如何使用 BFG 删除受保护的提交

    使用 BFG 清理存储库时 https rtyley github io bfg repo cleaner https rtyley github io bfg repo cleaner 遇到以下情况 Protected commits T

随机推荐

  • 使用 pyExcelerator/xlrd 进行数据透视

    如何使用 pyExcelerator xlrd 等 Python 库创建带有数据透视表的工作表 在 Excel 工作簿中 我需要生成一份每日报告 其中有一个数据透视表来汇总其他工作表上的数据 一种选择是使用一个空白模板 我可以复制该模板并用
  • TFS 分支和合并策略

    我在 TFS 中有一个团队项目 每天都会提交任务 我想独立完成每个任务 然后在测试后将其合并到主线中 目前有一个 MAIN 分支和一个 DEV 分支 它是 MAIN 的子分支 更改在 DEV 分支中进行 然后在准备就绪时合并到 MAIN 中
  • 什么时候应该尝试消除 switch 语句? [复制]

    这个问题在这里已经有答案了 我在我正在处理的代码库中遇到了一个 switch 语句 我正在尝试找出如何用更好的东西替换它switch 语句被认为是代码味道 http c2 com cgi wiki SwitchStatementsSmell
  • React 处理表单提交

    我正在尝试在 React Redux 中创建一个表单 现在我只希望表单在提交表单时触发我的函数handleSubmit 然而目前看来该功能是在页面加载时立即触发的 export default class AssetsAdd extends
  • Selenium:Firefox 驱动程序,在 c# 中使用 SelectElement 从下拉列表中选择一个项目无法正常工作

    我正在尝试执行一项简单的任务 尝试使用显示的文本在下拉列表中选择一个值 场景如下 我的 HTML 看起来像 div class col md 4 div
  • SQL Server 2008 中 Oracle 的 LAST_DAY() 函数的等效项是什么?

    我已经用过LAST DAY 函数 http docs oracle com cd B19306 01 server 102 b14200 functions072 htm在Oracle中是这样的 Last Day to date pay f
  • 使用 node.js 通过 Firebase-Admin 登录

    我正在尝试使用 firebase admin 使用 node js 登录 但是当我查找 API 时 他们只有关于update delete and create 他们确实有关于如何通过电子邮件获取用户的部分 但如果我想登录用户 我是否也应该
  • 在 Visual Studio 2008 中构建解决方案后,是否可以运行外部可执行文件?

    我不是在谈论项目的构建后事件 相反 我想在构建整个解决方案后自动运行可执行文件 有没有办法为解决方案执行构建后事件 Visual Studio 2010 及之前版本 您可以在宏编辑器中通过处理 OnBuildDone 来执行此操作 该事件为
  • 在模板中显示 Handlebars.js 上下文

    是否有一个变量传递到每个handlebar js 模板中 其中包含模板可访问的所有上下文内容 例如我正在创建一个模板 但我不知道该模板可访问的所有上下文内容 我希望能够在模板中输入内容 debug 并且handlebars js会将所有上下
  • 解析 XML Libxmljs (Node.js)

    我正在尝试解析 XML 字符串libxmljs https github com polotek libxmljs https github com polotek libxmljs 不过我有一些问题 我需要将逻辑应用于我正在解析的内容 并
  • 在 Javascript 中绘制可缩放的音频波形时间线

    我有来自歌曲的原始 44 1 kHz 音频数据作为 Javascript 数组 我想用它创建一个可缩放的时间线 Audacity 的时间表示例 由于有数百万个时间点 普通的 Javascript 图形库可能无法解决它 我认为 不确定 普通的
  • Dialogflow 中“意图”和“操作”之间的关系是什么?

    我在概念化 Dialogflow 代理中的 意图 和 操作 之间的关系时遇到了一些麻烦 我了解到意图将用户的口头请求映射到我的履行服务的特定功能 并可选择携带参数作为输入变量 这就是意图的定义方式官方文档 https dialogflow
  • 角度类型的BehaviorSubject

    假设我有一个模型用户 我想创建一个 User 类型的BehaviorSubject 如下所示 private userSource new BehaviorSubject
  • 在Powershell中,如何等待并行作业完成后再继续?

    基于如何并行执行PowerShell函数多次 https stackoverflow com questions 12766174 how to execute a powershell function several times in
  • Pandas 按 Zscore 过滤每组异常

    我有一个数据框 其中的 组 列可以有 50 个不同的值 还有一个数字 值 列 一个例子可以是 pd DataFrame group a b c a a b a c c value 2 123 4 2 3 2 5 127 128 4 0 00
  • 如何在sparkR中绑定两个数据框列?

    如何在spark 1 4的SparkR中绑定两列dataframe 蒂亚 阿伦 没有办法做到这一点 这是一个关于scala中的spark 1 3 的问题 能够做到这一点的唯一方法是使用某种 row numbering 因为这样您就可以加入
  • Rails 用范围扩展领域,PG 不喜欢它

    我有一个小部件模型 小部件属于 Store 模型 Store 模型属于 Area 模型 Area 模型属于 Company 在公司模型中 我需要找到所有关联的小部件 简单的 class Widget lt ActiveRecord Base
  • 如何子类化 UITextField 并重写 drawPlaceholderInRect 来更改占位符颜色

    我有一个 3UITextField与占位符文本集 在其中之一UITextField我希望占位符文本为红色 现在 在谷歌搜索之后 似乎最好的方法是子类化 UITextField 并覆盖drawPlaceholderInRect 我如何进行子类
  • 在只有一个键的哈希中查找键名?

    如果我有一个哈希 my h secret gt 1 我知道这只是哈希中的一个键 但我不知道它叫什么 然后我是否必须迭代该哈希 my key foreach my i keys h key h i 或者有更好的方法来获取密钥的名称吗 A 列表
  • 如何从另一个分支获取一个文件

    我有一个main带有名为的文件的分支app js 我对此文件进行了更改experiment branch 我只想应用所做的更改app js from experiment到main branch git checkout main firs