git 强制本地文件位于原点之上

问题描述

我正在帮助我的同事从 SVN 过渡到 Git。

他们的工作流程之一是简单地将单个文件强制推送到 svn 存储库之上。他们的工作目录可能有一些未经检查的差异,他们可能有一些本地提交,但他们需要一种方便的方法来将特定文件推送到 repo 之上。

我对 svn 不熟悉,但我理解预期的行为是将本地差异应用到原点之上,并解决任何问题,或者在差异无法合并时静覆盖远程。>

我很欣赏像这样推送单个文件并不是 git 的真正理念。然而,他们的用例似乎足够基本,我有点失望,我还没有找到好的推荐。

我想理想的行为是获取文件的本地提交(因此,仅包括文件的更改,这些文件只对具有此文件的提交和其他文件进行更改,保留相同的提交消息)并强制将其推送到中央存储库。我不确定如何准确地做到这一点,但至少可以使用 git diff origin/master -- file 生成工作目录更改的补丁+仅本地提交;我希望我能找到一种 git am 的方式来强制执行中央仓库......

我认为他们希望不必接触他们的工作目录来完成这项工作,因此隐藏/切换分支会被认为不方便;他们在本地工作而无需提交,并且每月只同步一次。

如有任何想法,我们将不胜感激。

解决方法

我认为他们希望不必接触他们的工作目录来完成这项工作,

然后他们应该简单地使用他们正在使用的远程 Git 托管服务的在线编辑器修改该文件(例如,在工作中,我使用内部部署的 Gitea 服务)

这将创建一个提交,其中仅包含该文件修改。
并且不需要任何本地修改/分支切换。