如果我独自在本地存储库中工作,为什么要推送?


21

我正在通过适用于Windows的GitHub与Git进行交互,这很有趣,因为我永远不会将存储库推送到GitHub。我正在独自开发它,仅供我使用。我注意到我的提交列在“未同步的提交”下,并且在“历史记录”下显示为“无提交”。这带给我一个问题,除了“历史”下列出的提交外,我还可以通过推送实现什么?


14
值得指出的一个主要问题是缺乏理解:如果您没有远程推送任何内容,则所有工作都在本地磁盘存储库中。失去机器,失去一切。
拉尔斯·维克伦德

Answers:


40

从技术上来说,您是正确的-如果您不与任何人共享代码,则无需真正推动。

再说一次,您的笔记本电脑有一个由出价最低的人制造的硬盘。在硬盘发生故障之前,您的房屋可能会被烧毁。您可能需要远程查看代码。甚至与某人分享。

现在,有了Github,他们要求一切都公开,或者您需要为私人存储库付费。因此,如果您想自己保留它,则可能需要查看bitbucket,它可以让您执行git,但还提供免费的私人存储库。

另一个选择是将git存储库保存在远程备份的某个位置。但是,如今这样做的好处不仅仅在于使用云SCM提供商,而且没有什么优势。


到位桶报价几乎无限数量的私人回购协议的自由

有很多理由要推动。工作流并没有真正改变太多。您可以进行提交,提交,提交,完成工作流程和推送...
钻机

7

您还有另一个原因要推送到存储库(即使它以一种或另一种方式在本地):工作站

我不了解您,但是我使用4台不同的计算机(家用1台PC,1台笔记本电脑,1台Office PC和1台Office笔记本电脑)工作,并将更改推送到公司服务器中正确设置的Git服务器,从而实现了快速同步和无痛。由于Git是DVCS,因此可以利用该优势:它不仅是备份,而且我正在使用的所有不同代码库都可以轻松地合并,检查和分析。

例如,如果您的家用PC是“服务器”(或原始服务器)并且您有一台家用笔记本电脑,则它可以是本地的-这样您就可以轻松保持同步。

旁注:人们经常说“我宁愿使用Dropbox(或任何其他同步服务)”。Git仓库中有大量的对象,因此像这样使用Dropbox太荒谬了。这是一个选择,但我不会说一个好选择。


+1,在您的情况下,我绝对会这样做。如果您忘了在家推销而现在在工作,该怎么办?
Moshe Revah,2012年

2
@Zippoxer专注于另一个任务,以后合并。
bytebuster

确实,@ bytebuster说了什么。那就是DVCS的美!(尽管经过足够的练习,您不会再忘记了!)
AeroCross

或者:在辅助/爱好项目上放松或探索新想法等:-)
johannes 2012年

6

作为分布式SCM,git区分了“制作工作副本的快照”(提交)和“同步存储库”(推/拉/取)的概念。

如果您只在存储库中拥有一个本地克隆,那么推送就没有意义。但是,使用github,您确实有另一个克隆(在github上),并且将更改推送到那里至少具有一个优点:备份。如果您的计算机死了,那么您仍然可以在github上推送所有内容。

当然,这不是github的主要目的。github是用于共享代码的,因此,如果您的项目位于github上,则可以允许其他人从那里进行拉取,克隆您的项目,对来自其克隆的拉取请求采取行动,甚至给受信任的其他人推送访问您的存储库的权限。

推送的另一个原因是,如果您使用多个本地克隆。这对很多事情都很有用:例如,您可能想同时在两个不同的分支上工作,或者您可能想在存储库中尝试可能具有破坏性的操作;如果所有功能均按预期工作,则可以保留修改后的克隆(或将更改推回原始存储库),但是如果一切正常,则可以删除混乱的克隆并返回到原始克隆(仍保持不变) 。

有些人甚至使用git进行部署:生产版本也是git repo,而更新到较新的版本则需要获取和签出(显然,这仅在不需要构建步骤时才有效)。对于必要的东西,我不一定会推荐它,但是对于较小的东西,它是一个简单而实用的解决方案。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.