Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Svn Git强制与主机完全同步_Svn_Git_Git Svn - Fatal编程技术网

Svn Git强制与主机完全同步

Svn Git强制与主机完全同步,svn,git,git-svn,Svn,Git,Git Svn,我的工作场所使用Subversion进行源代码控制,因此为了我自己的分支的优势,我一直在使用git svn,在不涉及主repo的情况下尽可能频繁地提交,等等 因为我的git svn签出是本地的,所以我已经将它克隆到网络共享中作为备份。我的想法是,如果我的桌面被转储,我至少会在网络共享上拥有回购协议,以获得我还没有机会提交的更改 我的工作流程是从桌面工作、进行更改、提交等。在一天结束时,我想用我当前的所有更改更新网络共享上的回购协议。我已经使用我的桌面上的git clone repo\u在网络共享

我的工作场所使用Subversion进行源代码控制,因此为了我自己的分支的优势,我一直在使用git svn,在不涉及主repo的情况下尽可能频繁地提交,等等

因为我的git svn签出是本地的,所以我已经将它克隆到网络共享中作为备份。我的想法是,如果我的桌面被转储,我至少会在网络共享上拥有回购协议,以获得我还没有机会提交的更改

我的工作流程是从桌面工作、进行更改、提交等。在一天结束时,我想用我当前的所有更改更新网络共享上的回购协议。我已经使用我的桌面上的
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
。这将确保完全同步。