话说近年来git已经成为项目源代码管理的标准工具,有不少免费托管网站可供使用,详情参考这篇文章:

http://www.cnblogs.com/zdz8207/archive/2012/05/20/2509356.html

对于个人开发的小项目,可能因太成熟、不想开源、觉得不安全等因素,不太愿意动用上述工具,本文给出一种基于同步网盘的git托管方案,可满足上述需求。

这种方法我是最早从codeproject上看到的:

http://www.codeproject.com/Tips/656476/git-and-Dropbox-Integration-within-Visual-Studio

上述文章采用Git-preview命令行模式实现,鉴于GUI操作更方便,在此,本人用【网盘同步盘】+【TortoiseGit】来完成Windows下的git项目托管,满足实现异地、多人协作要求。

一、准备工作

1)了解git的相关操作(commit、push、pull),如果一点都不了解,放心,按照本文内容做一遍,你就会有一个感性认识。

1)申请具有同步盘功能的网盘,比如百度、360、OneDrive、Dropbox等,下面仅以百度同步盘为例,其它网盘操作基本一样。

2)下载并安装如下软件:

(1)百度同步盘:http://pan.baidu.com/download

(2)TortoiseGit:http://download.tortoisegit.org/

3)设置好同步盘的本地文件夹,例如 X:\Yun

二、创建git仓库(respository)

如果项目已经创建过了,直接跳到第三步。

1)在文件管理器中切换到项目所在文件夹,如:E:\MyProjects\HelloWorld

2)在空白处单击右键,在弹出菜单中单击【Git Create repository here ...】,如下图所示

4)在弹出的对话框中单击【OK】,注意不要选择【Make it Bare】,这个选项后面会用到。

5)在不需要git托管的文件和文件夹上鼠标右键,按如下图方式添加到忽略列表(ignore list)中

6)在空白处单击右键,选择【commit】菜单,按如下方式完成首次 commit

三、在网盘同步文件夹中创建空仓储

1)定位到网盘同步文件夹 X:\Yun

2)新建一个文件夹用于存放项目仓储文件,如:X:\Yun\HelloWorld.git

3)切换到上述 X:\Yun\HelloWorld.git 文件夹

4)在空白处单击右键,在弹出菜单中单击【Git Create repository here ...】,在弹出的对话框中选中【Make it Bare】,单击【OK】完成,如下图所示

四、将同步盘文件夹中仓储文件夹设置为项目远程仓储

1)在文件浏览器中切换到项目所在文件夹(E:\MyProjects\HelloWorld),在空白处鼠标右键,选择【TortoiseGit】->【Settings】菜单,如下图所示:

2)在弹出的对话框中的左侧树形列表中选择【Git】->【Remote】,在右边的设置框中设置名称(Remote)、URL(设置为同步盘文件夹中的仓储地址),单击OK完成,如下图所示:

五、完成首次Push,将项目推送到远程仓储

在文件浏览器中切换到项目所在文件夹(E:\MyProjects\HelloWorld),在空白处鼠标右键,选择【TortoiseGit】->【Push】菜单,如下图所示:

六、使用同步盘的同步功能,将本地文件夹同步到网盘

七、如何在其它计算机上使用上述git完成项目开发

1)安装上述同步盘和TortoiseGit客户端

2)使用相同的网盘账号将网盘内容同步到计算机的文件夹,注意要确保 HelloWorld.git 被同步。假设同步文件夹为:F:\Yun

3)在计算机上新建文件夹用于存放项目文件,如:D:\HelloWorld

4)切换到上述文件夹,鼠标右键选择【Git Clone...】菜单,设置URL为:F:\Yun\HelloWorld.git,单击OK完成,如下图所示

八、不同计算机间的协作

在计算机上完成修改后,可通过【commit】->【Push】->【网盘同步】 三个步骤来实现提交;

在需要同步的计算机上,通过 【网盘同步】->【Pull】两个步骤实现下载更新。

最后,如果需要多人协作,可以公用一个账号。注意,不要轻易泄露自己网盘用户名和密码。

如何使用网盘托管git项目的更多相关文章

  1. 用yunio网盘搭建git私有仓库

      研究生开始奔波于教研室和寝室之间,于是想搭建一个git私有仓库来管理自己在做的项目或者学习资料.一来可以很方便的管理项目,二来可以学习使用git.我的主要工作平台是Linux,这也是我选择yuni ...

  2. 一键部署基于GitLab的自托管Git项目仓库

    https://market.azure.cn/Vhd/Show?vhdId=9851&version=11921 产品详情 产品介绍GitLab https://about.gitlab.c ...

  3. 百度网盘web端项目总结

    项目背景 网盘作为一个在线备份存储,共享文件的工具类产品,给人们的工作和生活带来了很大的帮助和便利.百度网盘是目前国内使用量最大的网盘产品,至今发展已有4年,总用户数超4亿,为了让用户有着更好的使用体 ...

  4. 使用快盘托管Git库

    Dropbox非常好用.可是我如今也没弄明确究竟哪里好用了.不如试试中国的金山快盘..起码不会操心被墙. cd ~/Kuaipan/repo git --bare init //初始化仓库 cd ~/ ...

  5. 百度网盘kbengine - warring项目下载地址

    http://pan.baidu.com/s/1k4J4y 下载解压之后,请看<<使用说明.doc>>,有更新指导

  6. 使用百度网盘+Git,把版本控制托管到云端

    之前公司的一个项目使用SVN来做的版本控制,服务器设在我这台电脑上.然后是出于某些原因,我的电脑IP变了多次,每变一次就要重新绑定静态ip,甚是烦人.同时SVN这种集中式的版本控制服务在我关闭了我的电 ...

  7. 使用百度网盘+Git,把版本控制托管到云端,附精彩评论

    http://www.cnblogs.com/vajoy/p/3929675.html 我试过多个这种双向同步的网盘,在网络状况不好.系统卡顿以及某些程序BUG的情况下,同步会有错乱现象,尤其是多个电 ...

  8. 使用百度云同步盘和Git Extensions进行代码托管

    一.软件安装 百度云同步盘和Git Extensions的安装和配置略过. 二.建立Git代码库,以[GHO2VMDK转换工具]项目为例 1. 建立本地代码库 进入[GHO2VMDK转换工具]项目文件 ...

  9. 使用网盘(Dropbox/Google Drive)同步Git仓库

    还在使用老掉牙的U盘搬运代码(文件)的方式,从一台机器上复制后,粘贴到另一台机器上?太Out了.使用Github 倒是一个非常不错的替代方法.但无论是基于什么理由都有可能不想把代码公开(毕竟Githu ...

随机推荐

  1. .Net 内存溢出(System.OutOfMemoryException)的常见情况和处理方式总结

    .Net 内存溢出(System.OutOfMemoryException)的常见情况和处理方式总结 在什么情况下会出现OutOfMemonryException呢? 在我们试图新建一个对象时,而垃圾 ...

  2. Android使用AttributeSet自定义控件的方法

    所谓自定义控件(或称组件)也就是编写自己的控件类型,而非Android中提供的标准的控件,如TextView,CheckBox等等.不过自定义的控件一般也都是从标准控件继承来的,或者是多种控件组合,或 ...

  3. Dungeon Game ——动态规划

    The demons had captured the princess (P) and imprisoned her in the bottom-right corner of a dungeon. ...

  4. Linux 进程通信(有名管道)

    有名管道(FIFO) 有名管道是持久稳定的. 它们存在于文件系统中. FIFO比无名管道作用更大,因为他们能让无关联的进程之间交换数据. 管道文件一般用于交换数据. shell命令创建管道 一个she ...

  5. MySQL基础 - mysql命令行客户端

    在Linux系统当中,mysql作为一个客户端命令程序,在很大程度上连接数据库都是使用mysql,因此很有必要熟悉mysql命令行的使用. 这里假设数据库用户为icebug,密码为icebug_pas ...

  6. JS原型-语法甘露

    初看原型 JS的所有函数都有一个prototype属性,这个prototype属性本身又是一个object类型的对象. prototype提供了一群同类对象共享属性和方法的机制. 将一个基类的实例作为 ...

  7. Android 编程下 Touch 事件的分发和消费机制

    Android 中与 Touch 事件相关的方法包括:dispatchTouchEvent(MotionEvent ev).onInterceptTouchEvent(MotionEvent ev). ...

  8. [CareerCup] 3.3 Set of Stacks 多个栈

    3.3 Imagine a (literal) stack of plates. If the stack gets too high, it might topple. Therefore, in ...

  9. Java并发之:生产者消费者问题

    生产者消费者问题是Java并发中的常见问题之一,在实现时,一般可以考虑使用juc包下的BlockingQueue接口,至于具体使用哪个类,则就需要根据具体的使用场景具体分析了.本文主要实现一个生产者消 ...

  10. Enum扩展及MVC中DropDownListFor扩展方法的使用

    public enum SearchState { /// <summary> /// 全部 /// </summary> [Description("全部" ...