Git强制完全同步到master

Jes*_*ogt 14 svn git git-svn

我的工作场所使用Subversion进行源代码控制,所以我一直在使用git-svn来获取我自己的分支的优点,我可以随意提交,而不需要触及主回购等.

由于我的git svn checkout是本地的,我已将其克隆到网络共享以充当备份.我的想法是,如果我的桌面进行转储,我至少会在网络共享上拥有回购,以获得我尚未有机会提交的更改.

我的工作流程是从桌面工作,进行更改,提交等.在一天结束时,我想用我当前的所有更改来更新网络共享上的repo.我在网络共享上设置了repo git clone repo_on_my_desktop,然后使用更新网络共享上的repo git pull origin master.我遇到的问题是当我在git rebase提交到主svn存储库之前使用do a 来压缩多次提交时.当我这样做时,当我尝试在晚上备份时,我在网络共享上的repo上发生合并冲突.

有没有办法简单地与桌面上的存储库完全同步,而不是git clone每晚都做新的?

has*_*sen 35

如果你打算从另一个回购中撤出,你不应该做一个反叛.

如果您不介意覆盖网络共享中的更改,可以执行以下操作:

git fetch origin master
git reset --hard origin/master
Run Code Online (Sandbox Code Playgroud)

这会将本地主站重置为原始主站.

警告:这是重置,它将丢失所有更改(已提交*或未提交).

但我假设你那里没有任何变化,而且它主要只是一个备份.

*注意:从技术上讲,承诺的更改在从reflog到期之前不会丢失,但是出于所有意图和目的,它们实际上已经丢失了.


Von*_*onC 8

两条评论:

1 /我建议为您的网络共享提供裸仓或一个捆绑(一个文件,更容易移动)

2 /我宁愿将network_repo添加为桌面仓库的远程数据库并从那里推送(git push --force network_repo master):你留在你的工作回购中.