我有一个git设置与两个仓库,这两个都是读/写(我通常在一个代码,但有时我也在另一个代码)。我的工作流程通常是我在本地回购工作,然后当我准备好测试我的更改时,我将我的提交推送到其他远程回购,我实际上构建了我的项目。然而,出于某种原因,当我从本地到远程推送时,远程存储库上的更改是“倒置的”,即更新了存储库,但更改的反面(即将远程回购变回其更改的更改预先推送状态)在索引中注册。推送到远程git仓库索引
例如,假设我有一个评论// This is a comment
,我已经更新到说// This is a comment that has been updated
本地,然后推到我的远程回购的文件时,我得到了我的远程回购如下:
remote_repo$ git diff --cached
-// This is a comment that has been updated
+// This is a comment
显然,我可以通过运行git reset --hard
将它们置于相同的状态,但有没有其他方法可以实现此目的和/或使其自动化?我希望大多数人会建议添加一个运行git reset --hard
的post-receive挂钩,但我希望这可以通过一种干净的方式进行配置。
注意:此时索引中的内容是在推送之前索引*中的内容。这就是问题的根源:索引与之前的HEAD提交匹配,但是HEAD本身已经发生了某种变化,现在已经解决了一个新的不同的提交。你不需要硬复位(混合复位就足够了),但总的来说,这有点陷阱。 – torek
Doh,回想起来总是有道理。我意识到这是一个尴尬的工作流程,但我拥有两个仓库,任何人都不能访问,所以危险实际上只是一个不便。 – DIMMSum