【发布时间】:2016-06-30 20:27:14
【问题描述】:
对于初学者,我已经研究了How to backup a local Git repository? && Fully backup a git repo? 但我的问题在于备份我尚未提交给本地仓库的东西。
具体来说,我使用 carbonite(一种备份云服务),只要我选择的目录中的文件发生更改,它就会备份到云服务。这对我使用 subversion 很方便,因为如果发生损坏我的本地计算机的事情,我会备份所有保存的代码。
现在我已经切换到使用 Git 并且每次切换分支时我的所有文件都会更改,Carbonite 将其识别为一个目录,并且每次切换时都会更改所有备份文件。
我对 carbonite 问题的解决方案是不备份 Git 存储库,但是如果我的机器出现故障,那么我会丢失未提交的代码。有人知道我应该在这里做什么来备份我未提交的代码吗?
【问题讨论】:
-
在本地提交您的代码,所有代码分支都会备份,不是吗?或者使用 git 本身:创建一个远程仓库,将正在进行的工作提交到本地分支,然后推送到远程。
-
如果您的计算机出现故障,您真的会丢失您的代码吗?如果您从 carbonite 复制整个文件夹,它仍然会有您的本地更改,不是吗?
-
@BrianMalehorn 仅当当前已签出分支本地更改时才会如此。例如,如果我切换分支,carbonite 会备份新分支来代替旧分支。所以如果分支没有被签出,那么是的,我真的会丢失我的代码。
-
这篇文章似乎可以提供帮助:matthew-brett.github.io/curious-git/curious_remotes.html 基本上,您可以从目标分支创建一个分支(git checkout -b local-changes)并将该分支推送到“备份”远程。在您觉得工作完成后,您可以提交您需要的任何内容,然后将“临时”分支重新定位到目标中(可能会压缩提交)。