我的工作场所使用 Subversion 进行源代码控制,所以我一直在使用 git-svn 来获得我自己分支的优势,在不触及主仓库的情况下尽可能频繁地提交,等等。
由于我的 git svn checkout 是本地的,我已将它克隆到网络共享并作为备份。我的想法是,如果我的桌面发生转储,我至少会在网络共享上拥有存储库,以获取我还没有机会提交的更改。
我的工作流程是在桌面上工作、进行更改、提交等。在一天结束时,我想用我当前的所有更改更新网络共享上的存储库。我已经使用 git clone repo_on_my_desktop
在网络共享上设置了 repo,然后使用 git pull origin master
更新了网络共享上的 repo。我遇到的问题是,在提交到主 svn 存储库之前,我使用 git rebase
压缩多个提交。当我这样做时,当我尝试在晚上备份时,网络共享上的存储库出现 merge 冲突。
有没有一种方法可以简单地与我桌面上的存储库完全同步,而无需每晚执行新的 git clone
?
最佳答案
如果您打算从另一个存储库中提取数据,则不应进行 rebase 。
如果您不介意覆盖网络共享中的更改,您可以这样做:
git fetch origin master
git reset --hard origin/master
这会将本地主机重置为原始主机。
警告:这是一个硬重置,它将丢失您的所有更改(已提交*或未提交)。
但我假设您实际上没有任何更改,而且主要只是备份。
* 注意:从技术上讲,提交的更改在它们从 reflog 过期之前不会丢失,但就所有意图和目的而言,它们实际上已丢失。
关于svn - Git 强制完全同步到 master,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2906130/