GIT入门

154 阅读4分钟

一. git是什么?

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

1. git诞生

2. 版本控制工具

2.1 集中型版本控制控制工具

svn,cvs,vss
特点
1.实现大部分开发中对版本控制的管理需求
2.结构简单,上手容易
缺点
1.对中央仓库依赖严重,一旦损坏,历史数据怎么恢复?
2.程序上传的都是完整版,如何追溯查询?
3.系统正在献上运行需要修改bug或增加功能,持续几个月的事件,如何同时管理几个版本
4.如何管理分布各地团队
uTools_1650681626204.png

2.2 分布式版本控制控制工具

uTools_1650682035307.png

3. git作用

1.协通开发
2.版本记录
3.冲突解决
4.历史追查
5.代码备份
6.版本还原
7.权限管理
8.分支管理
9.代码审查
10. 。。。。。。。

二. git安装

命令行工具 可视化工具

1. 配置git签名

1.选中要作为git的文件,鼠标右键选择git bash
tip:
git是分布式 所以我们要填写用户名和邮箱作为标志
c:\usr\xxxx路径下。gitconfig文件 文件里有global属性,所有git项目都会共用这个属性
\

git config --global user.name "yyx"\
git config --global user.email "xxxx.@xx.com"

三. 创建版本库

第一步 选中要git的目录
第二步 输入命令git init 初始化\

1. git 命令行

查看文件 git status
将文件添加到临时到暂存区 git add 文件名 (没有真正提交)
git commit 提交文件,把所有暂存区文件提交
git commit -m “提交提示信息” 可以理解为注释
每当有文件修改 删除 添加 都需要重新git add然后 git commit
git log 打印提交信息 查看日志
git log --pretty=oneline 只打印提交实践信息

四. 回退历史

1. 回退到上一次

git reset --hard HEAD^1 HEAD是一个指针 永远指向最新版本 ^1指向上一个版本
--hard 硬:这种回退会将指定的数据抹除 不会保留任何你修改的记录
--soft 软:回退版本并保留你修改的记录 会自动帮你git add
--mix 折中:回退版本并保留你修改的记录 不会自动帮你git add
git reset修改 HEAD指向 这种方式可以恢复之前的版本 但是恢复之后当前版本之后的将不负存在 uTools_1650686942337.png

2. 回退到指定版本之前

git reset --hard HEAD~2 回退到2个版本之前

3. 版本穿越

git reflog #查看历史记录的版本号
git reset --hard 7csdasd 7csdasd为版本号 输入git reflog可以查看

4. 还原文件

git checkout 把文件内容还原成git commit后的内容

5. 删除文件

先删除文件 然后git add 再然后git commit 不是真删除 只是当前版本没有

五. 工作区 暂存区 本地库

1. 概念

工作区: 电脑的本地磁盘目录
暂存区:一般存储在git目录下的index文件, 暂存区有时也称为索引
本地库:工作区中有一个.git目录 他就是git的本地版本库

2. 关系图

uTools_1650690973219.png

六. 分支

1. 分支介绍

项目上线,但是有新功能 要改bug

uTools_1650691890161.png

2. 分支命令

查看分支 git branch -v
创建分支 git branch 分支名称
切换分支 git checkout 分支名称

3. 合并分支(将其他分支合并到master分支)

1.切换到主分支 git checkout master
2.合并 git merge 分支名

七. 冲突

什么是冲突

冲突一般指同一个文件同一位置代码,在合并时工具软件无法判断应该保留哪一个版本,因此会提示该文件发生冲突,冲突一般需要手动解决冲突。 uTools_1650694843035.png 查看冲突 git diff
解决冲突 切换到冲突文件 进行处理 然后在重新add 和 commit

八.Github是什么?

是git项目托管网站 主要提供基于git的版本托管服务

uTools_1650697594706.png

九.Github操作

1建立本地仓库
2. \

uTools_1650697828616.png

uTools_1650697745779.png

1 推送代码到git

1.1 增加远程地址

git remote add <远端代号> <远端地址>
<远端代号>一般用origin做代号
<远端地址>指远程链接的url

uTools_1650698002731.png

1.2 推送到远程库

git push <远端代号> <分支名>

1.3 下载远程库

git clone <远端地址> <项目的目录名>
<项目的目录名> 项目的目录名下载后本地的名字 可以不写 默认github的仓库名

uTools_1650698360770.png

1.4 上传库(需要库主人同意你上传申请)

先上传到本地库 然后git push origin master

uTools_1650698772517.png

1.5 项目更新到github

git pull <远程代码> <远程分支名>

uTools_1650699337280.png

十. 协作冲突

1.什么是协作冲突

在上传或同步代码时,由于你和其他人都修改了同一文件的同位置代码,版本管理工具无法判断究竟以谁为准,这就会报告冲突,需要程序员手动解决

2.协作冲突解决方法

当push到github出现协作冲突
1.pull一下
2.修改冲突文件
3.git add
4.git commit
push时协作冲突: uTools_1650700185424.png uTools_1650699802595.png pull uTools_1650700627618.png push发现冲突后 先pull 然后修改本地文件 然后 add 然后commit 然后push