繁体   English   中英

使用 git,如何从另一个分支中的文件(绕过合并)强制覆盖一个分支中的文件并提交?

[英]With git, how to force overwrite a file in one branch, from a file in another branch (bypass merge), and commit?

我在名为“ production ”的分支中有一个文件,我想用另一个名为“ sqa ”的分支中的特定文件覆盖它。

该文件的性质是它不是有多个贡献者的代码。

什么命令会这样做? (两个分支都不是 master) - 一个分支称为“ production ”,另一个分支称为“ sqa ”。


分支 ' sqa ' 中的文件我想进入分支 ' production ' 并在运行命令后使它们相同,避免任何潜在的合并冲突(强制覆盖,强制接受 'sqa' 中的文件) /sqa/file => /production/file

如果这是可能的,并且如果有人实际这样做并对此进行了测试,将不胜感激(仅适用于单个文件,而不是多个文件或整个分支合并)。

如果文件存在于分支 ' sqa ' 但不存在于 ' production ' 中,该命令的工作方式是否相同(将其复制到那里?)

您可以像这样在另一个分支中完全一样地引入文件:

git checkout the-other-branch -- the-file

然后,您可以根据需要提交它。 以防万一,它不会保存有关它来自何处的元数据

如果您想要的是复制一个文件,以便以不同的名称保存它,那么它是这样的:

git show the-other-branch:the-file > file-name-i-want
git add filename-i-want

然后你就可以提交了。 然后,就像在我之前的示例中一样,将没有关于文件来自何处的元数据。 就像您在没有 git 帮助的情况下从头开始编写该文件然后添加/提交它一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM