版本控制工具使用(二)

续上一个总结。

一、分支管理

1、什么是分支

            在版本控制过程中,使用多线条同时推进多个任务

(注意:hot_fix是热修复)

2、分支的好处

同时并行推进多个功能开发,提高开发效率;各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支任何影响。失败的分支删除重新开始即可。

3、查看当前所有分支

git branch -v

4、创建分支(hot_fix 是分支名)

git branch hot_fix

5、切换分支

git checkout hot_fix

6、合并分支

  • 第一步:切换到接受修改的分支(被合并、增加新内容)上
    • git checkout[被合并分支名]
  • 第二步:执行merge命令
    • git merge [有新内容分支名]

二、Git基本原理

1、哈希

哈希是一个系列的加密算法,各个不同的哈希算法虽然加密强度不同,但是有以下几个共同点:

  • 不管输入数据的数据量有多大,输入同一个哈希算法,得到的加密结果长度固定
  • 哈希算法确定,输入数据确定,输出数据能够保持不变
  • 哈希算法确定,输入数据有变化,输出数据一定有变化,而且通常变化很大
  • 哈希算法不可逆

2、Git底层采用的是SHA-1算法。

哈希算法可以被用来验证文件,原理如下图所示:

3、Git的文件管理机制

Git把数据看作是小型文件系统的一组快照。每次提交更新时Git都会对当前的全部文件制作一个快照并保存这个快照的索。为了高效,如果文件没有修改,Git不再重新存储该文件,而是只保留一个链接指向之前存储的文件。所以Git的工作方式可以称之为 快照流。

4、文件管理就是一个”链条“,创建文件就是创建一个指针,切换一个分支就是切换一个”指针“。效率比SVN高很多。

三、总结一下

1、初始化新的本地库

git init

2、创建远程库

3、在本地创建远程库地址别名

  • 命令:git remote -v 查看当前远程有无地址其他别名
  • 命令:git remote add origin https://github.com/henuliyanying/huashan.git
    • 以后就可以用origin代替上面这个链接
    • 给这个远程地址起的别名

4、克隆

  • 命令:

git origin [远程地址]

  • 完整的把远程库下载到本地
  • 创建origin远程地址别名
  • 初始化本地库(克隆直接把库初始化好了

5、拉取

  • pull = fetch +merge
  • git fetch [远程库地址别名][远程分支名]
  • git merge [远程库地址别名][远程分支名]

6、解决冲突

要点:

拉取下来后如果进入冲突状态,则按照“分支冲突解决”操作解决即可。

如果不是基于GitHub远程库的最新版所做的修改,不能推送,必须先拉取。

四、SSH登录

1、背景:

背景:使用http形式的,每次pull push都需要登录,改用SSH,即可省去登录

2、SSH登录

  • 进入当前用户家目录 cd ~ (~代表家目录)
  • 将创建的SSH目录删掉 rm -r .ssh/
  • 运行命令生成.ssh密钥目录 ssh-keygen -t rsa -C [邮箱],直接回车(使用默认设置)
  • 进入这个SSH目录查看文件列表,cd .ssh/

  • 查看这两个目录下的文件 cat id_rsa.pub
  • 复制id_rsa.pub文件内容,登录GitHub,点击用户头像-》Settings->SSH and GPG keys
  • New SSH Key
  • 输入复制的密钥信息
  • 回到Git bash创建远程地址别名
    • git remote add origin_ssh git@github.com:henuliyanying/huashan.git
  • 推送文件进行远程测试

五、Eclipse操作

1、工程初始化本地库

工程-》右键-》Team->Share Project ->Git

点击Use or create ……

Create Respository

点击finish

2、在eclipse里面设置本地库签名

3、?问号代表为追踪的文件,在命令行里直接执行 git add 追踪到暂存区就好

点击 项目右键——》Team——》Commit

4、Eclipse中忽略文件

  1. 概念:Eclipse特定文件

(这些都是Eclipse为了管理我们创建的工程而维护的文件,和开发的代码没有直接关系,最好不要在git中进行追踪,也就是把它们忽略)

  • .classpath文件
  • .project文件
  • settings目录下所有文件

2、为什么要忽略Eclipse特定文件呢?

同一个团队中很难保证大家使用相同的IDE工具,而IDE工具不同时,相关工程的特定文件就有可能不同。如果这些文件加入版本控制,那么开发时很有可能需要为了这些文件解决冲突。

3、GitHub官网样例文件

  • 也要忽略targer文件,target文件是编译后的字节码文件。
  • 源文件没有错,则编译后的字节码文件肯定不会有错。
  • 原则上:让git 帮我们管理的代码越少,出错的几率越小。
  • 在家目录下建 Java.gitignore 文件,内容从第一个链接找
  • 增加:.classpath .project .settings target
  • 在家目录里找.gitconfig文件,在里面增添 :
  • 【注意:这里路径中一定要使用“/”,不能使用“\”】
  • restart 即重启eclipse

结果:如此以上文件对 我们使用Git进行版本控制,没有任何干扰。

4、eclipse中将代码添加到缓冲区

项目右键-》Team->Add to Index,效果如下图:

添加完之后 :星号代表已经被提交到暂存区:

再点击commit,被提交到本地库了

观察图标变化:

5、推送远程库

出现这个页面,则代表执行远程库成功:

6、从Git导入项目到eclipse时

最后一步,目录结构不是我们熟悉的,需要执行操作

项目右键-》Configure->Convert to Maven Project

结果:生成标准的maven目录结构的文件

当遇到冲突时,通过以下步骤调出 本地与远程 之间的区别。

俗称:合并工具

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值