Svn Git强制与主机完全同步
我的工作场所使用Subversion进行源代码控制,因此为了我自己的分支的优势,我一直在使用git svn,在不涉及主repo的情况下尽可能频繁地提交,等等 因为我的git svn签出是本地的,所以我已经将它克隆到网络共享中作为备份。我的想法是,如果我的桌面被转储,我至少会在网络共享上拥有回购协议,以获得我还没有机会提交的更改 我的工作流程是从桌面工作、进行更改、提交等。在一天结束时,我想用我当前的所有更改更新网络共享上的回购协议。我已经使用我的桌面上的Svn Git强制与主机完全同步,svn,git,git-svn,Svn,Git,Git Svn,我的工作场所使用Subversion进行源代码控制,因此为了我自己的分支的优势,我一直在使用git svn,在不涉及主repo的情况下尽可能频繁地提交,等等 因为我的git svn签出是本地的,所以我已经将它克隆到网络共享中作为备份。我的想法是,如果我的桌面被转储,我至少会在网络共享上拥有回购协议,以获得我还没有机会提交的更改 我的工作流程是从桌面工作、进行更改、提交等。在一天结束时,我想用我当前的所有更改更新网络共享上的回购协议。我已经使用我的桌面上的git clone repo\u在网络共享
git clone repo\u
在网络共享上设置了repo,然后使用git pull origin master
更新网络共享上的repo。我遇到的问题是,在向主svn存储库提交数据之前,我使用了git rebase
来压缩多个提交。当我这样做时,当我尝试在夜间备份时,我会在网络共享上的回购上发生合并冲突
有没有一种方法可以简单地与我桌面上的存储库完全同步,而不必每天晚上进行新的
git克隆?如果你想从另一次回购中退出,就不应该进行重新基础
如果您不介意覆盖网络共享中的更改,可以执行以下操作:
git fetch origin master
git reset --hard origin/master
这会将本地主机重置为原始主机
警告:这是一个硬重置,它将丢失所有更改(已提交*或未提交)
但我假设你在那里没有任何变化,而且大部分只是一个备份
*注意:从技术上讲,提交的更改在reflog过期之前不会丢失,但出于所有目的,它们实际上都会丢失。两条注释:
1/我建议为您的网络共享提供一个或多个(一个文件,更易于移动)
2/我宁愿将network_-repo作为远程设备添加到桌面repo并从那里推送(git push--force network_-repo master
):您留在工作的repo中。不,它不会删除无关的文件。如果您有任何更改并且很高兴丢失它们,您还需要git clean-f-d
。这将确保完全同步。