标题:Git学习—git、gitHub、gitee
学习内容:
1、Git相关概述
2、Git 安装
3、Git 常用命令
4、分支
5、GitHub 操作
6、IDEA 集成 Git
7、IDEA 集成 GitHub
8、码云Gitee相关内容
9、gitLab和学习总结
内容详情:
1、Git相关概述
Git
Git 是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种 项目。
Git 易于学习,占地面积小,性能极快。
它具有廉价的本地库,方便的暂存区域和多个工作 流分支等特性。
其性能优于 Subversion、CVS、Perforce 和ClearCase 等版本控制工具。
版本控制
版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。
为什么需要版本控制 :个人开发过渡到团队协作。
版本控制工具
集中式版本控制工具
CVS、SVN(Subversion)、VSS…… 集中化的版本控制系统诸如 CVS、SVN 等,都有一个单一的集中管理的服务器,保存所有文件的修订版本,而协同工作的人们都通过客户端连到这台服务器,取出最新的文件或者提交更新。多年以来,这已成为版本控制系统的标准做法。 这种做法带来了许多好处,每个人都可以在一定程度上看到项目中的其他人正在做些什么。而管理员也可以轻松掌控每个开发者的权限,并且管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松容易。
事分两面,有好有坏。这么做显而易见的缺点是中央服务器的单点故障。如果服务器宕机一小时,那么在这一小时内,谁都无法提交更新,也就无法协同工作。
分布式版本控制工具
Git、Mercurial、Bazaar、Darcs…… 像Git 这种分布式版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整地镜像下来(本地库)。这样任何一处协同工作用的文件发生故障,事后都可以用
其他客户端的本地仓库进行恢复。因为每个客户端的每一次文件提取操作,实际上都是一次对整个文件仓库的完整备份。
分布式的版本控制系统出现之后,解决了集中式版本控制系统的缺陷:
服务器断网的情况下也可以进行开发(因为版本控制是在本地进行的)
每个客户端保存的也都是整个完整的项目(包含历史记录,更加安全)
Git 工作机制
工作区:代码存放的位置
暂存区:工作区的代码添加到暂存区
本地库:将暂存区的代码提交到本地库
还可以增加远程库,本地库和远程库可以进行拉取等操作
Git 和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般我们简单称为远程库。
局域网
GitLab
互联网
GitHub(外网)
Gitee 码云(国内网站)
2、Git 安装
除了以下三步,其余都是默认下一步
下载完成后,在桌面上右击就有 Git Bash Here
点开 Git Bash Here输入 git --version,出现版本信息就成功啦
3、Git 常用命令
补充:
git log 查看更改的详细信息
设置用户签名
git config --global user.name 用户名
git config --global user.email 邮箱
说明:
签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交是谁做的。Git首次安装必须设置一下用户签名,否则无法提交代码。
注意:
这里设置用户签名和将来登录 GitHub(或其他代码托管中心)的账号没有任 何关系。
初始化本地库
git init
结果会产生一个.git的文件夹
查看本地库状态
git status
添加暂存区
git add 文件名
提交本地库
git commit -m "日志信息" 文件 名
查看历史记录
git reflog
版本穿梭
git reset --hard 版本号
先用 git reflog 查看版本信息,然后复制想回到的版本号
4、分支
概述
在版本控制过程中,同时推进多个任务,为每个任务,我们就可以创建每个任务的单独分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开来,开发自己分支的时候,不会影响主线分支的运行。
master分支一直在给用户使用,我们在用其他的分支,搞好了就合并分支,没合并之前不对master分支有任何影响。
分支的好处
同时并行推进多个功能开发,提高开发效率。 各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
分支的操作
查看分支
git branch -v
创建分支
git branch 分支名
切换分支
git checkout 分支名
合并分支
git merge 分支名
正常合并没什么
异常合并需要手动的去修改代码
hot-fix 和 master都对同一个地方修改了,并且提交到了本地库,那么不知道合并的时候用谁修改过的,所以会报错,还是合并中的状态,手动修改后提交本地库不要增加文件名
5、GitHub 操作
团队内协作
跨团队协作
GitHub 网址:https://github.com/
创建远程仓库
登录后点击右上角的+号,点击New repository.
远程仓库操作
创建远程仓库别名
git remote add 别名 远程地址
推送本地分支到远程仓库
git push 别名 分支
第一次可能会失败,第二次就好了,出了个弹窗绑定你的账号。
拉取远程库内容
git pull 远程库地址别名 远程分支名
克隆远程仓库到本地
git clone 远程地址
clone 会做如下操作
1、拉取代码。
2、初始化本地仓库。
3、创建别名
SSH免密登录
在user用户下的C:\Users\xiaobai,每个人的后面不一样,我的是小白,右击打开git Bash Here 输入下面的命令
ssh-keygen -t rsa -C 邮箱
然后连续三下回车,在该目录下生成了.ssh文件,然后打开公共的秘钥复制
输入秘钥title随便取
然后就成功了
接下来再往远程仓库 push 东西的时候使用 SSH 连接就不需要登录了。
6、IDEA 集成 Git
配置 Git 忽略文件
创建忽略规则文件 xxxx.ignore(前缀名随便起,建议是 git.ignore)
这个文件的存放位置原则上在哪里都可以,为了便于让~/.gitconfig 文件引用,建议也放在用户家目录下
git.ignore 文件模版内容如下:
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
在.gitconfig 文件中引用忽略配置文件(此文件在 Windows 的家目录中)
[user]
name = xiaobai
email = 2581692055@qq.com
[core]
excludesfile = C:/Users/xiaobai/git.ignore
注意:这里要使用“正斜线(/)”,不要使用“反斜线(\)”
为什么要忽略他们
与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之间的差异。
在idea里面定位 Git 程序
然后初始化本地库
默认就是当前目录
添加到暂存区和提交到本地库
切换代码版本
创建、切换和合并分支
项目右击git里面
idea左下角可以看分支状态
可以点开图标就是上述的截图,直接切换分支
合并分支
7、IDEA 集成 GitHub
登录gitHub
用口令的方式
口令获取
全部勾选
推送,拉取,克隆操作
8、码云Gitee相关内容
码云官网地址:https://gitee.com/
大部分操作和gitHub差不多
创建远程库
可以直接点击这个导入gitHub代码
IDEA 集成码云
idea自带gitHub,所以不用插件,码云就直接去安装一个插件就行,后面的操作差不多。
9、gitLab和学习总结
这个留给以后接触了公司之后再看,linux系统太多东西相关了,到时候统一解决
总结:学习的课程都是尚硅谷教的,希望以后可以通过文档和书籍自学