我的工作场所使用Subversion进行源代码控制,所以我一直在使用git-svn来获取我自己的分支的优点,我可以随意提交而无需触及主回购等。
由于我的git svn checkout是本地的,我已将其克隆到网络共享以充当备份。我的想法是,如果我的桌面需要转储,我至少会在网络共享上拥有回购,以获得我尚未有机会提交的更改。
我的工作流程是从桌面工作,进行更改,提交等。最后,我想用我当前的所有更改来更新网络共享上的repo。我使用git clone repo_on_my_desktop
在网络共享上设置了回购,然后使用git pull origin master
更新网络共享上的回购。我遇到的问题是当我使用git rebase
在提交到主svn存储库之前压缩多个提交时。当我这样做时,当我尝试在晚上备份时,我在网络共享上的repo上发生合并冲突。
有没有办法简单地与桌面上的存储库完全同步,而不是每晚都进行新的git clone
?
答案 0 :(得分:33)
如果你打算从另一个回购中获取,你不应该做一个变基。
如果您不介意覆盖网络共享中的更改,可以执行以下操作:
git fetch origin master
git reset --hard origin/master
这会将本地主服务器重置为原始主服务器。
警告:这是硬重置,它将丢失所有更改(已提交*或未提交)。
但我假设你那里没有任何变化,而且它主要只是一个备份。
*注意:从技术上讲,承诺的更改在从reflog到期之前不会丢失,但是出于所有意图和目的,它们实际上已经丢失了。
答案 1 :(得分:8)