Git教程
一、Git
1.git介绍
Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
Git易于学习,占地面积小,性能极快,它具有廉价的本地库,方便的暂存区域和多个工作流分支特性,其性能优于Subversion、CVS、Perforce和ClearCase等版本控制工具
版本控制:版本控制最重要的作用是记录一个文件的修改历史记录,并且根据该记录可以切换到对应的历史版本,这个也是由个人开发到团队开发重要的工具。
集中式版本控制系统:具有一个统一的中央服务器,里面存放着项目的源码。各个客户端都从该服务器中拉取代码和上传自己编写的代码到服务器中。
优点:各个客户端可以查看其他客户端在该项目中做了什么,一定程度上了解项目的进度。同时,管理员可以控制各个程序员的权限。
缺点:无法应对中央服务器的单点故障问题,当中央服务器宕机后,各个客户端都不能提交代码和拉取代码,同时在宕机的期间,做不到版本的历史记录。
分布式版本控制系统:每个客户端都是一个版本库(本地库),各个客户端维护自己的版本历史记录。各个客户端的协作是通过使用远程库(github等)进行的,push把代码推送到远程库中,pull把远程库的代码拉取下来。

优点:解决了集中式版本控制的缺点。在远程库宕机的情况下(虽然说这个概率极低),客户端还是能进行开发的,因为版本的控制是在本地进行的。同时,每个客户端保存的是整个项目,包括历史记录,使得更加安全。
Git的工作机制

代码托管中心(远程库):
- GitLab(局域网级别的,不与外部共享)
- GitHub(互联网级别,国外网站,访问速度会比较慢)
- Gitee码云(互联网级别,国内网站,访问速度会相对快)
2.Git安装










3.Git命令
#设置用户签名
#git首次安装必须进行配置,是用来区分不同操作者身份,确认本次提交是谁操作的。但该配置与github的账号没有任何关系.
git config --global user.name 用户名
git config --global user.email 邮箱
#初始化本地库 让该目录受git进行管理
git init
#查看本地库状态 查看当前所在的分支,提交的记录,未被追踪的文件(未被add的文件)
git status
#从工作区添加到暂存区
git add 文件名
#从暂存区中删除
git rm --cached 文件名
#从暂存区中提交到本地库中
git commit -m "提交信息" 文件名
#查看提交记录
git reflog
#查看详细提交记录
git log
#版本穿梭
#1.查看版本历史记录
git reflog
#2.选择一个版本进行穿梭
git reset --hard 版本号
底层:head指针指向分支,分支指针指向版本号。当版本号发生变化时,分支指针指向对应的版本号
4.Git分支
4.1分支的概念
在版本控制过程中,同时推进多个任务,我们就可以创建每个任务的单独分支,使用分支意味着程序员可以把自己的工作从开发主线上分离出来,开发自己分支的时候,不会影响主线分支的运行,简单理解就是一个分支就是一个单独的副本(底层还是指针的使用)
4.2使用分支的好处
(1)同时推进多个任务,提高开发效率
(2)各个分支开发的过程中互不干扰,如果一个分支开发失败,不会影响其他分支,只需删除失败的分支就可以重新开始
4.3分支的操作
#查看分支
git branch -v
#创建分支
git branch 分支名称
#分支切换
git checkout 分支名称
#合并分支 将某个分支合并到当前的分支上
git merge 分支名称
#产生代码冲突的原因:
#合并分支时,当两个分支在同一个文件的同一个位置发生修改时,git无法判断使用哪一个时,就需要人为决定新代码的内容
#解决冲突的方法:
#(1)merge后手动解决冲突
#(2)添加到暂存区 git add .
#(3)提交到本地库,但要注意的是,不能带文件名 git commit -m "提交信息"
5.Idea集成Git
(1)配置git的忽略文件
- 在家目录中添加git.ignore文件
- 在.gitconfig中配置git.ignore文件
# Windows image file caches
thumbs.db
ehthumbs.db
# Folder config file
Desktop.ini
# java class file
*.class
# Package Files #
*.war
*.ear
/target
/.settings
/.classpath
/.project
/.idea
# ignore Maven generated target folders
target
out
# ignore eclipse files
.project
.classpath
.settings
.factorypath
.metadata
.idea
*.iml
# ignore log files
*.log
[user]
name = xiaoxian
email = 邮箱地址
[core]
excludesfile = C:/Users/XiaoXian/git.ignores
(2)在idea中配置git

(3)初始化项目

二、GitHub https://github.com/
1.创建远程库
#创建别名
#(1)查看别名
git remote -v
#(2)添加别名
git remote add 别名 github远程地址
2.代码推送 Push
#推送本地库
git push 别名 本地库分支名
#在团队协作中,如果要推送代码到远程库中需要远程库管理者添加该程序员的github
#在跨团队协作中,首先跨团队要fork该项目,然后对代码进行修改,修改完毕后创建一个pull request.该项目的管理者就会审核该代码,没问题后再合并代码。
3.代码拉取 Pull
#远程库拉取
git pull 别名 远程库分支名
4.代码克隆 Clone
#将远程库的代码进行克隆
git clone 远程库地址
#clone会进行的操作:
#1.拉取代码
#2.初始化本地库
#3.创建别名
5.SSH免密登录
#生成ssh公钥和私钥
ssh-keygen -t rsa -C 邮箱地址
#将公钥复制到github中,就可以免密登录了

如若转载,请注明出处:https://www.dasum.com/158144.html