分享
 
 
 

VSwithGit

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: |||超大  

认识GitGit是目前世界上最先进的分布式版本控制系统。相对于分布式版本控制系统,也有集中式版本控制系统,比如TFS。

集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

集中式版本控制系统最大的问题是必须联网才能工作,而且,如果中央服务器出问题,所有人没法工作了。

而分布式版本控制系统就不存在这样的问题,因为每个人的电脑中都有一个完整的版本库,在同步之前,所有操作都可以在本地仓库中完成。

集中式版本控制系统:

分布式版本控制系统:

分布式版本控制系统的本地操作流程图:

工作目录,暂存区域和本地仓库这几个概念非常重要。

工作目录:即解决方案所在目录。

暂存区域:已添加,但还未提交到本地仓库。

本地仓库:已提交,相对于远端仓库而言的本地版本。

测试环境vs2015GitLab取消IE代理并且关闭fiddler添加到远端仓库基于已存在的项目,将它添加到远端仓库(GitLab)中。

比如,现在我要将本地项目HelloWebAPI添加到GitLab中,要进行以下操作。

1,解决方案上右键,选择将解决方案添加到源代码管理菜单,打开选择源代码管理窗口。或者打开菜单"文件/添加到源代码管理"也可以打开选择源代码管理窗口,如下图

2,选择Git,确定,在打开的更改窗口中,写上备注点击提交,此时项目已添加到本地仓库中了,但还没有发布到远端仓库。

3,在发布到远端仓库之前,必须在GitLab上先建立一个远端仓库。

点击CreatePRoject按钮,即创建了一个远端仓库。

创建远端仓库时的可见性要说明一下:

Private:是需要显式授权(加入到项目成员中)才可以clone项目。

Internal:只要拥有GitLab帐号(或者域帐号)的开发人员默认都可以clone项目。

Public:不需要任何授权就可以clone项目。

综合以上,我们在创建远端仓库的时候,最好将可见性设为Internal,其它项目成员都可以clone项目,免去了一个一个添加的麻烦。

复制地址,下面会用到。

4,发布到远端仓库。

点击发布按钮,可以看到已经发布成功了。

此时进到GitLab项目的主页刷新页面,可以看到提交的记录,如下图。

从远端仓库克隆添加到远端仓库是基于本地已存在项目,而从远端仓库克隆是项目在本地不存在,需要从远端仓库克隆一份到本地的情形,操作步骤如下。

1,Git全局设置,可以设置用户名,email和存储库位置。用户名和email会显示在你的提交记录中,存储库位置便于统一远端仓库克隆时的路径,如下图。

2,复制你要克隆的远端仓库的url,如下图。

3,进入团队资源管理器的连接窗口,在本地Git存储库项中粘贴上前面copy的url,然后点击克隆按钮,这样就成功创建了一个本地存储库,如下图。

可以双击打开项目。

提交更改远端仓库克隆到本地后,我们就可以在本地开发,并提交更改了。

1,签出代码并修改

我在readme文件中添加了一句话

2,提交

在解决方案上右键,选择提交,进入团队资源管理器的更改窗口。

输入注释,然后点击提交按钮,即可提交代码,需要注意的是,此时只是提交到本地存储库中,还不是远端存储库。

提交按钮有个下拉菜单,这个后面会讲到,先点击提交(第1个)即可。

3,同步

要将本地的更改发布到远端存储库,我们还需要做同步操作,如下图。

我们先不管获取,拉取和推送这些,后面会讲。

提示提交成功

查看远端存储库,已经可以看到同步成功了。

同步进入到团队资源管理器的同步窗口,如下图。

先来了解下这几个按钮的作用。

推送:将本地存储库的更改更新到远端存储库。

获取:在拉取之前获取所有传入提交。

拉取:从远端存储库获取最新版本。

同步:同步实际上同时进行了两个操作,先从远端存储库拉取(pull)最新版本,然后和本地存储库进行比较,进行自动合并(merge)后推送(push)到远端存储库。

1,获取最新版本

为了减少冲突,在开始开发新功能前,都会先去获取最新版本,获取的方式一般有两种,当然要依实际情况来选择。

1) 获取和拉取,在传入提交项可以看到团队其它成员的提交更改,可以拉取全部,或者拉取其中某个更改到本地。

2) 同步,因为同步会同时进行两个操作,拉取和推送。所以这个操作适合本地存储库没有待推送的更改的情形,因为如果本地存在待推送的更改的时候,很容易导致冲突的发生。

2,提交更改

当开发完某个功能,或者fix了某个bug时,就会去提交更改到远端存储库。

1) 推送,可以一次推送全部本地更改或提交一个,推送一个。

2) 同步,也可以点击同步实现提交更改,当然,在同步之前最好拉取最新版本,这样可以减少冲突的发生。

成员和权限管理1,入口

有两种添加成员的方式,Add members是从人员清单中添加,Import members是从其它项目中批量导入成员。

2,GitLab默认提供了四种角色,如果要允许成员提交更改的话,必须设定其角色为Master,否则会收到如下图的错误。

注:以上错误,只是针对主线master,在分支上提交更改不会报告这个错误。

分支管理,创建与合并分支1,创建分支

有两种方法创建分支,分别是基于本地创建分支和基于远端创建分支,如果是基于本地创建分支,最好先获取最新版本,如果是基于远端创建分支,团队成员最好都提交本地更改。我们约定,一般都基于远端创建分支。

需要注意的是,如果是基于远端创建分支,一定要取消跟踪远程分支复选框,否则就创建成了跟踪分支了。跟踪分支不能分布,它是用于联系本地分支和远程分支的,在跟踪分支上的操作(包括推送和拉取)会自动推送和拉取到关联的远程分支上,比如默认的本地master分支就是origin/master的一个跟踪分支。

 

输入分支名称,点击创建分支。

创建成功,接着发布分支,即将分支推送到远端存储库。

 

要注意的是,此时该分支变为跟踪分支了。

分支2015.07.29.HelloWebAPI1.0已经推送到远端存储库了。

2,合并分支

为了模拟实际情形,先在分支2015.07.29.HelloWebAPI1.0上做些修改,然后提交更改,最后将分支合并到主线上。

在test2.txt中添加一行新的记录,并提交更改到本地存储库

切换到分支窗口,先切换到主线(master)分支,然后点击合并按钮,从分支合并选择源分支2015.07.29.HelloWebAPI1.0,当前分支选择目标分支master,然后点击合并按钮开始合并。

合并,提交更改成功提示

分支更新的代码已经合并过来了。

推送更改到远端存储库

进入GitLab,已经可以看到提交更改记录,并且主线代码已经更新了。

主线代码已经更新

3,删除分支

首先从远端删除分支

此时本地对应的分支就由跟踪分支为普通分支了,直接删除即可。

这样,分支2015.08.27就被完整删除了。

解决冲突当团队中两人或多个同时修改同一文件的同一代码段,后提交更改或获取更新的人就会碰到冲突。

1,冲突发生

以主线(master)的文件test1.txt为例,假如两人同时修改它。

张三在test1.txt的第3和4行新增两行代码,并提交到本地存储库。

李四也在test1.txt的第3和第4行新增两行代码,并提交更改和推送到远端存储库。

如果张三再去推送的话, 冲突就发生了。

2,解决冲突

先获取并拉取最新,然后解决冲突。

获取并拉取最新版本

点击解决冲突链接,进入到解决冲突窗口

点击合并按钮

源和目标的更改都勾选上,并且点击接受合并

提交合并

GitLab已更新

TFS代码迁移到Git1,使用TortoiseGit等工具手动推送。

2,使用其它工具,可以参考下面文章。

1),http://www.cnblogs.com/sorex/archive/2013/03/11/2954095.html

2),http://chriskirby.net/migrate-an-existing-project-from-tfs-to-github-with-changeset-history-intact/

3,TFS—>git可以保留完整历史记录(包括源代码),方法:

https://github.com/git-tfs/git-tfs

系统变量的path里加上:

;C:\Program Files (x86)\Git\bin;F:\Users\Desktop\GitTfs-0.22.0\

新开cmd,执行命令

md C:\PackageFH

cd C:\PackageFH

git-tfs clone http://hp580tfssz:8080/tfs/WingonTravel $/PackageFH/MainLine

TortoiseGit的使用安装程序可以从以下路径获得:

\\172.18.21.12\技术开发部\转运站\Software\git\TortoiseGit-1.8.14.0_64bit.1436148947.msi

主要有以下几个步骤

1,创建本地仓库

点击OK,即创建本地仓库成功。

2,设置

设置用户信息和远端仓库url

点击确定,设置完成。

3,提交到本地仓库

点击OK,代码就提交到本地仓库了。

4,推送到远端仓库

推送成功

查看GitLab,代码已经同步过去了。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有