我在 BeanStalk 上有一个现有的存储库。我想要做的就是使用一个 OS X 应用程序,它允许我使用 GUI(就像我可以在基于 Web 的 BeanStalk 网站上做的那样),例如 Tower 或 Sprout。两者都希望我“克隆”我现有的存储库。
为什么我需要这样做,而不仅仅是从 OS X 应用程序访问它?
我在 BeanStalk 上有一个现有的存储库。我想要做的就是使用一个 OS X 应用程序,它允许我使用 GUI(就像我可以在基于 Web 的 BeanStalk 网站上做的那样),例如 Tower 或 Sprout。两者都希望我“克隆”我现有的存储库。
为什么我需要这样做,而不仅仅是从 OS X 应用程序访问它?
版本控制的工作流程与 FTP 不同。FTP相当简单;编辑文件,然后上传。你完成了。这也可能是一个问题。您计算机上的文件与托管服务器上的文件相匹配……但您的同事不知道这一点。那可能很危险!
版本控制将其提升到了另一个层次。一切都被跟踪。这允许更好的团队协作。编辑与他人共享,当发生冲突时,它将被标记。
因为它是一个不同的工作流程开发完全在您的计算机上完成。克隆为您提供存储库中所有文件的副本,然后将它们放在您的计算机上 Tower 或 Sprout 可以监控的区域。这些工具会在同事推送更新时通知您,然后帮助您更新本地文件(反之亦然)。这些程序对工作流程至关重要,应该全天打开和使用。
很多时候,我的工作都被正常的 FTP 工作流程覆盖了。我对其他人也做过同样的事情。我很少再使用FTP了。克隆是从计算机上的存储库中获取文件的第一步。
希望这有帮助,祝你好运!
现代版本控制的整个想法是每个开发人员(每个用户)都获得他/她自己的项目副本,他/她自己的工作副本(工作区,工作树)。这样一个开发人员的工作与其他开发人员分开,不会弄乱其他开发人员的工作。(当然版本控制系统也必须具备合并能力,即加入变更)。
分布式版本控制的整个想法是每个开发人员(每个用户)都获得他/她自己的存储库副本,他/她自己的克隆。这样,一个开发人员可以处理一系列步骤,一系列提交与其他开发人员分开。
请注意,如果您已经在计算机上克隆了存储库,所有 Git GUI 都允许您选择现有的 Git 存储库(有时通过从所述存储库内部启动)而不是创建新的克隆。当然,你应该记得通过 fetch / pull 让自己保持最新,并通过 push 让你的远程发布存储库保持最新。
也就是说,一些 git 托管站点/软件伪造在其 Web 界面中包含从 Web 浏览器管理/编辑存储库的能力。例如GitHub提供了对文件的创建、编辑等操作、创建分支和合并的接口;您甚至可以通过 GitHub 克隆和为您创建拉取请求来提供有关外国存储库的更改建议。
Beanstalk 也(根据他们在文档中所说的)对代码编辑有一些支持(在页面底部,左栏)。
还有像GitHub for Mac这样的工具,但我不知道它是否使用 GitHub API 来编辑远程存储库,比如通过 Web 浏览器,或者像其他 Git GUI 一样需要你将存储库克隆到桌面。
当然,它不适用于 Beanstalk 托管的存储库。Beanstalk 已经想到了一些第三方工具,例如 Habichuelas 或 iOS 的 Magic Bean。
git 中没有任何东西需要这种行为。赔率是您尝试使用的应用程序只是假设您远程托管您的代码,例如在 GitHub 上。如果您没有远程存储库,那么您应该可以忽略这些说明。
这取决于托管远程存储库的系统上可用的工具。
例如,为了能够查看远程存储库的版本历史记录,远程系统上运行的某些东西git log
必须运行命令或等效命令。您不能只git log
自己运行命令;这仅适用于您的本地系统,并且仅当您的当前目录位于 git 存储库中时。
如果您有兴趣检查远程系统上的存储库,并且该远程系统提供了构建在 之上的适当工具git
,那么您不需要克隆存储库。例如,GitHub 提供了一个 Web 界面(在幕后,它可能正在运行git log
,并且其他命令在存储在 GitHub 的服务器上的 repos 上)。
如果您想要 Git 的全部功能,您可以克隆存储库(将其复制到您自己的本地系统)并在git ...
本地运行命令。但当然,大多数这些命令(除了git pull
,git push
等)不会影响远程仓库。
这就是 Git 和其他分布式版本控制系统的设计工作方式。