首页 > 解决方案 > git 强制将本地文件放在原点之上

问题描述

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

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

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

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

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

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

任何想法将不胜感激。

标签: gitgit-push

解决方案


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

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

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


推荐阅读