2014-09-02 67 views
1

从我读到的内容看来,git stash命令将其信息存储在本地回购站中,而不是存储在远程回购站中。我担心的是这很容易造成每个开发商因硬件故障而损失。特别是,如果开发商存储更长的时间更改。除限制储存期限以外的任何最佳实践?Git存储命令 - 本地回购或远程?

+1

除了'fetch','push','pull','clone'和'remote'外,几乎所有'git'子命令都只能在您本地的repo中运行...... – twalberg 2014-09-02 20:36:34

+0

每个存储的条目*一个提交 - 或者说,至少两个,有时是三个提交。在我的答案[git存储和应用](http://stackoverflow.com/q/20409853/1256452)中查看我的图。因此可以推送或克隆它,但默认情况下不会被推送或克隆,因为'refs/stash'不在通常的推式/克隆名称空间中。 – torek 2014-09-03 01:14:50

回答

2

没错。

隐藏被用于(共同)一些未完成的更改,甚至很难被压缩到一个提交。对于需要通过远程与其他git客户端共享的更改,有分支机构,这些只是对特定提交的命名引用。此外,人们使用一些-experimental分支(本地和远程)来分析当前状态下看起来不太可用的东西,但稍后可能会有所帮助。

除限制储存时间以外的任何最佳实践?

有一个存储很长时间没有任何逻辑限制。但请记住,当所有在其中更改的文件都很难修改时,隐藏将变得很难使用。由于冲突数量庞大,几乎不可能将其弹回。

1

你是对的,当git stash被执行时,它被保存在本地回购。 Git的功能非常全面,我不会感到惊讶的是,有一种方法可以将本地存储设置为远程回购,我甚至不会费心使用Google搜索,我不认为存储是一件好事。

藏匿在不同的情况下(开关支路,检查功能预变化等),非常方便,但是我会推荐给pop/apply藏匿尽快,平时我尽量不会让藏匿了一个多小时的时间越长,我在我离开我的笔记本电脑很长一段时间(工作结束,午餐时间)之前,我总是会清理我的存储空间。我会说,如果某件事足够重要,可以被推送或保存超过一个小时,那么它可能很重要,足以让它成为分支。感谢Git有这样一个多功能的分支系统:)

0

我想说的最好的做法是备份你的本地Git仓库,就像你应该备份你的本地文档或其他文件一样。

+0

我们避免使用本地任何东西 - 一切都在Confluence,JIRA,Git,SVN等一些公司系统中进行,这当然是备份的。 – halt00 2014-09-02 21:03:16

+0

用户的工作目录在对Git进行更改之前如何?同样的问题。 – 2014-09-03 11:10:16

+0

同意,但我们所看到的问题是某些东西被藏起来然后被遗忘(故意 - 例如推迟或真正被遗忘)。 – halt00 2014-09-03 20:59:56