前言

版本管理工具总结:

开发团队项目,对项目的版本进行管理。

使用过的版本管理工具:

TFS、SVN与Git。

TFS:管理项目,通过visual Studio管理源码,拉取分支,提交代码等。也可以直接通过idea管理源码(2017版本以后好像没有自动集成TFS)链接(百度)

SVN:安装,培训手册,常用操作。链接(百度)

一、什么是Git

1、定义

Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。 [1]  Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。(参看百度百科)

2、GitHub

GitHub是通过Git进行版本控制的软件源代码托管服务平台,由GitHub公司(曾称Logical Awesome)的开发者Chris Wanstrath、PJ Hyett和Tom Preston-Werner使用Ruby on Rails编写而成。
GitHub同时提供付费账户和免费账户。这两种账户都可以创建公开或私有的代码仓库,但付费用户支持更多功能。根据在2009年的Git用户调查,GitHub是最流行的Git访问站点。[3]除了允许个人和组织创建和访问保管中的代码以外,它也提供了一些方便社会化共同软件开发的功能,即一般人口中的社群功能,包括允许用户追踪其他用户、组织、软件库的动态,对软件代码的改动和bug提出评论等。GitHub也提供了图表功能,用于概观显示开发者们怎样在代码库上工作以及软件的开发活跃程度。
截止到2015年,GitHub已经有超过两千八百万注册用户[4]和5700万代码库。[5]事实上已经成为了世界上最大的代码存放网站和开源社区。[6]
2018年6月4日晚上,美国科技公司微软宣布以75亿美元的股票收购GitHub[7][8][9]。

参看链接:https://zh.wikipedia.org/wiki/GitHub

二、集中式管理与分布式管理

两张图看懂集中式版本控制系统和分布式版本控制系统的区别。

集中式管理系统的特点:版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。
本地是没有版本库的修改记录的,所以集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个10M的文件就需要5分钟。

首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件A,你的同事也在他的电脑上改了文件A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
既然是多人协作,我们肯定是需要指定一个人的电脑作为总仓库,所以人从他的电脑上提交更新,拉取别人的提交,这样才能保证他的仓库保留了所有人的改动。 这个人其实就充当了集中式中的服务器仓库的角色。
所以我们通常说的分布式管理系统的服务器就是其实就是找一台电脑充当服务器的角色,每天24小时开机,其他每个人都从这个“服务器”仓库克隆一份到自己的电脑上,并且各自把各自的提交推送到服务器仓库里,也从服务器仓库中拉取别人的提交。

参看链接:https://www.zhihu.com/question/25577853/answer/550990502

1.集中式版本控制系统(CVS,SVN,TFS)

有一个中央服务器,干活的时候,用的都是自己的电脑,需要先从中央服务器获取最新的版本,然后开始干活,干完活了,再把自己的修改推动给中央服务器。

缺点:需要联网的情况下才能使用,上传速度慢。

2.分布式版本控制系统(最常见的Git)

分布式版本控制系统没有中央服务器,每个人的电脑上都用一个完整的版本库,只要交换对方的修改就行,把各自的修改推送给对方。

分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

优点:安全性高,不需要联网

参看链接:https://www.zhihu.com/question/25577853/answer/72757984

三、Git的安装与简单使用

1、通过GitHub Desktop可视化工具注册Git账号;

2、本地安装Git;

3、创建本地仓库;

4、版本管理。

参看链接:

https://www.cnblogs.com/ximiaomiao/p/7140456.html

https://blog.csdn.net/C10062000/article/details/89854669

四、Git对SVN 的支持

1、命令:git svn clone  url

如图:从远程下载pdfc文件。

2、可以参看链接:https://blog.csdn.net/easonchenys/article/details/38565123的简单说明。

五、Git的常用命令

1、创建本地仓库

2、远程下载文件

六、Git视图化管理工具GitHub Desktop

1、创建仓库

2、创建分支

3、合并分支

4、解决冲突

5、版本回退   

参看链接:https://blog.csdn.net/weixin_44447687/article/details/99415279

https://www.cnblogs.com/yanglh6-jyx/p/GitHub.html

七、idea使用git

7.1参看链接

https://blog.csdn.net/qq_40563761/article/details/91347443

https://blog.csdn.net/mucaoyx/article/details/98476174?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

7.2idea更新与提交代码

1、提前代码

提交代码前先fetch(将代码从远程仓库更新到本地仓库),再pull(从本地仓库更新代码到开发工具);

再提交commit(提交到本地),最后push(提交到远程仓库)。

2、git pull failed 用stach解决:

本地代码先 git stash ;(stash作用见参考)
然后pull代码;
最终再unstash changes;

原理:

git stach相当于先把当前代码暂时备份,然后代码会恢复到未修改之前;
此时可以进行pull操作;
unstash changes相当于把原来备份的代码再放出

参看链接:https://blog.csdn.net/xianyu_x/article/details/105040896

Git的使用(六)的更多相关文章

  1. Git 学习(六)分支管理

    Git 学习(六)分支管理 几乎每一种版本控制系统都支持分支.使用分支意味着你可以从开发主线上分离开来,然后不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录 ...

  2. Git知识总览(六) Git分支中的远程操作实践

    前几篇博客陆陆续续的讲了好多关于Git操作的内容,本篇博客仍然也不例外,不过本篇博客的主题是关于git的远程操作的.依照之前博客的风格,我们依然依托于LearningGitBranch中的相关内容来探 ...

  3. Git之(六)标签管理

    发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库的一个快照 ...

  4. [原]git的使用(六)---远程仓库

    10.远程仓库 -------------------------------------------------------------------------------------------- ...

  5. git log filter(六)

    显示前10条提交记录: root@vmuer-VirtualBox:/media/vmuer/share/cmake-uart-server# git log -10 commit b056dacb0 ...

  6. 【Git的基本操作六】分支管理

    分支管理 1. 什么是分支? 在版本控制过程中,使用对条线同时推进多个任务. 2. 分支的好处 同时并行推进多个功能开发,提高开发效率 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任 ...

  7. Git复习(六)之标签管理

    标签管理 发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库 ...

  8. git使用记录六:对commit的message做处理

    修改最新commit的message git commit --amend 修改老旧commit的message 查询最新的三个log soaeon@DESKTOP-FUJJTHR MINGW64 / ...

  9. Git使用教程六

    冲突的产生与解决 案例:模拟产生冲突. ①同事在下班之后修改了线上仓库的代码 注意:此时我本地仓库的内容与线上不一致的. 2.第二天上班的时候,我没有做git pull操作,而是直接修改了本地的对应文 ...

  10. 【学习总结】Git学习-参考廖雪峰老师教程六-分支管理

    学习总结之Git学习-总 目录: 一.Git简介 二.安装Git 三.创建版本库 四.时光机穿梭 五.远程仓库 六.分支管理 七.标签管理 八.使用GitHub 九.使用码云 十.自定义Git 期末总 ...

随机推荐

  1. jquery给动态生成的元素绑定事件,on函数

    首先先解释一下什么是动态生成的元素:动态生成的元素即我们用jquery的内部插入函数append()所生成的html代码.相对的也有静态生成的元素:即直接编写在页面的html代码. 下面通过例子来讲解 ...

  2. P1123 取数游戏

    题目描述 一个N \times MN×M的由非负整数构成的数字矩阵,你需要在其中取出若干个数字,使得取出的任意两个数字不相邻(若一个数字在另外一个数字相邻88个格子中的一个即认为这两个数字相邻),求取 ...

  3. 搭建支持SSL加密传输的vftpd

    让vsftpd支持SSL 必须让OPENSSL≥0.9.6版本还有就是本身vsftpd版本是否支持 查询vsftpd软件是否支持SSL        [root@localhost vsftpd]# ...

  4. UF_LAYOUT 布局相关

    Open C uc6460uc6462uc6463uc6464  根据视图名称旋转视图,在布局中替换视图uc6466uc6467uc6468uc6469uc6470uc6471uc6472uc6473

  5. 【NX二次开发】打开信息窗口UF_UI_open_listing_window

    头文件:uf_ui_ugopen.h函数名:UF_UI_open_listing_window 函数说明:打开信息窗口 测试代码: #include <uf.h> #include < ...

  6. bzoj2427 软件安装! 树dp

    软件安装 内存限制:128 MiB 时间限制:1000 ms 标准输入输出     题目描述 现在我们的手头有N个软件,对于一个软件i,它要占用Wi的磁盘空间,它的价值为Vi.我们希望从中选择一 些软 ...

  7. 关于Mysql事务,你必须知道的几个知识点!

    Transaction事务 上期我们讲到了jpa的常用操作,查询.更新.删除等,但是如果在操作数据库事务时发生异常,数据会回滚吗?下面我们来看个例子 UserController新增如下代码: @Ge ...

  8. To_Heart—题解——AT2165

    这是一篇解题报告 首先,看到标签,考虑二分答案. 我们二分答案(即塔顶的值),把大于或等于这个值的变为1,否则变为0. 很容易发现,如果塔顶的答案是1,那么就说明值可以更大,否则相反. 复制一波样例 ...

  9. bootstrap validate 验证插件 动态添加和动态删除验证项

    //添加验证项 function addField(field, notEmptyMsg, othercon) { if (!othercon) { $("#gyssave").b ...

  10. POJ 2002 二分 计算几何

    根据正方形对角的两顶点求另外两个顶点公式: x2 = (x1+x3-y3+y1)/2; y2 = (x3-x1+y1+y3)/2; x4= (x1+x3+y3-y1)/2; y4 = (-x3+x1+ ...