Windows下Git使用记录03 Git GUI与金山快盘组建私人代码仓库进行项目开发

使用github进行开发的过程中会有一个问题,那就是github不能提供私人的代码仓库,也就是别人完全可以看到你的代码。如果不想别人看到自己的代码,那就得付费购买github的高级服务,或者通过金山快盘构建自己的私人代码仓库。如果开发人员众多的大型项目,建议还是购买github的付费服务;如果是开发人员比较少的项目,尤其是个人独立开发的项目,强烈建议通过本文的方法,使用Git GUI和金山快盘来组建自己的私人代码仓库,也就是利用金山快盘建立 Git Server,进行项目开发。

在安装Git GUI之后(Git GUI的安装可参考:windows下GIT使用记录--00准备阶段 一文)。再申请金山快盘账号,申请链接:http://www.kuaipan.cn/?channel=w5lxa8 (使用以上链接申请时,申请之后可以多获得1G的免费空间),在本地主机上安装金山快盘客户端,并指定一个同步文件夹,注意因为Git GUI对中文路径的支持不是很好,同步文件夹最好设置为英文路径。如果已经设置了中文路径,也可以通过快盘设置中的迁移文件夹功能来将文件夹迁移到英文目录下。这一部分不再赘述。

1. 在第一主机创建项目的代码仓库

打开Git GUI,在相应的项目文件夹创建代码仓库。

image

之后克隆一份存放到金山快盘中。为了便于以后的管理,我们在金山快盘中专门创建一个GitRepos文件夹,用户存放代码仓库。注意这个克隆需要--bare参数,要以启动Git bash在命令行中进行操作。

找到自己项目所在的目录,右键单击,然后选择Git Bash。如果右键菜单中没有Git Bash,也可以直接调出CMD,运行Git进入项目文件夹进行以下操作。这里我的金山快盘目录为F:/KuaiPan/,我想要将代码仓库放在金山快盘的GitRepos目录(F:/KuaiPan/GitRepos/)下,命名为ReportTemplate.git。接下来就可以进行下列操作。

image

git clone --bare . F:/KuaiPan/GitRepos/ReportTemplates.git

--bare 参数不能缺少。

. 表示当前目录,这里是项目所在的目录,如上图显示:E:/Report/ReportTemplates。注意如果路径名中有空格,需要添加双引号,如, “E:/My Report/ReportTemplates”

这样我们就在金山快盘中创建好了一个远端代码仓库。可以在金山快盘F:/KuaiPan/GitRepos目录下,生成了一个新的ReportTemplates.git目录,其目录中包含着Git代码仓库相关的文件,但是并没有实际代码文件,其实该ReportTemplates.git目录下的内容就是E:/Report/ReportTemplates目录下的.git子目录中的内容。.git是隐藏目录,需要设置系统显示隐藏目录才能看得到。

接下来,我们还是通过Git GUI来建立本地项目与金山快盘中的远端代码仓库的联系。

image

通过git GUI 添加远端代码仓库,参数如上图所示。

之后就可以将本地仓库的代码修改等改变提交到远端代码仓库。

image

image

这时金山快盘中的代码仓库已经就创建完毕了。

2. 在其它主机中从金山快盘中克隆代码仓库进行开发

 

 

2.1 首次在其它主机进行项目开发

如果项目仅有一个开发者,而您在另一台电脑中也需要进行项目开发。您在上一台电脑中Push代码之后,金山快盘会在您的不同电脑之间进行数据的更新,等更新完成之后,您就能从金山快盘中将项目代码克隆到另一台电脑中。经本人测试,金山快盘的同步速度在国内同类网盘中属于佼佼者,这也是我选择金山快盘的重要原因。

如果该电脑中还没有相应的项目,那么可以在相应的文件夹下克隆远端代码仓库。

image

这里我想在W:/GitRepo目录下创建项目, 那么就在该目录下,右键,选择Git Bash。在出现的如上图的Git命令行窗口中输入

git clone F:/KuaiPan/GitRepos/ReportTemplates.git

其中 F:/KuaiPan/GitRepos/ReportTemplates.git中F:/KuaiPan/ 为在该电脑上的金山快盘的目录,这个可以和第一台设备的地址不同;GitRepos/ReportTemplates.git 为远端代码仓库在金山快盘中的位置,这个和第一台设备的地址是一样的,因为都是金山快盘中的地址。

添加之后,会在当前目录(W:/GitRepo)下创建一个该项目的目录。这时可以看到在第一台主机中的代码出现在了该目录下了。

ScreenClip(84)

这时用Git GUI打开该项目,在Git GUI中显示的远端代码仓库的名字为origin.

ScreenClip(85)

您如果感觉origin不太合适的话,可以将之删除,再重新添加远端即可。添加远端的方法这里不再赘述。

接下来就可以在该电脑中进行项目开发了。便于以后的操作,这里我们新建一个文件:testgit.txt。

ScreenClip(86)

rescan, stage changed,commit,push之后,就完成了向金山快盘远端代码仓库提交上传最新代码的工作。

2.2 非首次在其他电脑进行项目开发

如果该电脑中已经创建过相应的代码仓库,或者您在其它电脑中修改了项目代码,并push到了金山快盘的远端代码仓库中,而需要在第一台电脑中同步项目代码;那么之前的步骤就可以省略了,可以直接从远端代码仓库fetch项目代码。

ScreenClip(82)

fetch了项目代码之后,该代码并没有与本地的项目代码合并。如果查看该电脑的项目代码所在的文件夹,会发现该文件夹下并没有所期望的变化,比如说代码的添加,代码的删除等等。这时还需要合并代码。

ScreenClip(83)

ScreenClip(87)

image

从Merge信息的窗口中,我们可以看到项目的改变被合并到本地主机的项目代码中了。从项目文件夹中也能看到相应的变化。

ScreenClip(89)

接下来就能在该主机中进行项目开发了。

3. 多人项目开发

如果一个项目多人进行开发时,就需要将金山快盘中的远端代码仓库分享给项目的其他开发人员。金山快盘的共享操作如下图所示

ScreenClip(91)

选中要共享的文件夹,单击共享设置,然后输入好友邮箱,这里要求好友必须也拥有金山快盘,添加之后,好友就能看到您共享的目录,同时对该目录拥有修改权限。如果您将您进行开发的项目共享给您的好友之后,他就能在她的金山快盘文件夹中的“我收到的共享文件”的子目录中,找到以该您的邮箱命名的共享文件夹,该文件夹中就是您向他共享的所有文件或文件夹。“我收到的共享文件”在命令行中名字为sharebox,即F:/KuaiPan/sharebox

那到现在出现了一个问题,因为git对@符号有特殊的操作,而金山快盘的共享文件夹下的用户名以邮箱命名,所以git不能成功从共享文件夹中克隆项目代码。

ScreenClip(93)

现在怎么办呢?如果使用的是win7或Linux系统,那么就可以用我在Windows7文件夹转移清理臃肿的C盘一文中介绍到的方法,在金山快盘中建立软链接到“我收到的共享文件”文件夹下相应的远端代码仓库文件夹下,从而规避@符号的问题。如果使用的xp系统,那么可以通过安装另外的软件来完成建立软链接的操作。

在金山快盘中创建软链接指向共享的文件夹:

ScreenClip(92)

mklink /J 软链接 源文件夹

之后,在想创建项目代码的文件夹下右键,Git Bash,从软链接进行克隆项目代码。

ScreenClip(94)

项目克隆成功。从文件夹中,我们也可以看到相应的改变。接下来就是用Git GUI打开该项目,在Git GUI中显示的远端代码仓库的名字为origin,如2.1节。接下来就可以在您的计算机中进行项目的开发了。

例如,创建了一个新的文件textgit2.txt. 然后将修改后的项目代码提交,上传到金山快盘的远程代码仓库中。

之后您就可以通过从您的金山快盘中的远端代码仓库中fetch最新代码,并merge到本地项目,得到其它开发者对项目修改后的最新代码。从下图中可以看到textgit2.txt被成功合并到您的本地项目代码中了。

ScreenClip(95)

接下来,您就可以进行项目的开发,并将您对项目的贡献上传到您的金山快盘的远端代码仓库中,金山快盘会为您的项目小组进行最新代码之间的同步更新工作。

4. 需要注意的问题

这里金山快盘并不像github那样能够处理多人同时提交代码的状况。但是快盘并不具备如此只能的功能。从理论上说,最新的文件是以修改的时间先后来确认的,但是由于您和其他开发者都能对远端代码仓库进行修改,如果两人或多人同时修改,快盘将如何操作呢?

在这种情况下,金山快盘会提示您共享的文件冲突,提示您另存一份新的文件。之后可以通过在Git GUI添加相应的新的远端,进行fetch,merge来进行多个版本的同步与合并。不过这样做相对来说比较麻烦。这里建议项目开发人员在上传代码到远端代码仓库时能够提前做好必要的沟通,来避免上述问题。


转载请注明出处:博客园 永不止步

原文地址:http://www.cnblogs.com/ResearchRecord/

原文地址:https://www.cnblogs.com/ResearchRecord/p/2822326.html