Git
为什么要学习git
版本管理,是一种记录一个或若干文件内容变化,以便将来查阅特定版本修改情况的系统。
版本管理软件分类
集中式版本管理:
集中式(代表:SVN )
集中式版本管理软件的特点是,代码的版本集中到一个服务器上。
问题:如果没有网络或者服务器崩溃,将无法进行版本管理
分布式版本管理:
分布式(代表:Git )
分布式版本管理软件的特点是,代码的版本分布到每个计算机上。
99%的操作都是在自己的计算机上完成,联网即可同步代码。
查看版本号
打开终端,输入git —version 输入回车 即可查看版本号
配置个人信息
每一次安装都要配置
1.配置邮箱
在出现的终端窗口中,输入 git config —global user.email xxx@.com ,回车执行该命令,用以配置邮箱
2.配置用户名
在出现的终端窗口中,输入 git config —global user.name “xxx” ,回车执行该命令,用以
3.查看是否配置成功
git config --global user.email
git config --global user.name
初始化本地仓库
找到你要使用git管理的项目目录,右键打开git客户端,然后输入git init + 回车即可进行初始化
git init
重复初始化会提示已经有一个仓库了
基础命令
提交记录
每当项目完成了一个小功能,都需要提交一次记录
1.添加对 改动过文件的监视
git add . //这个点不能紧跟在add的后面,一定要加一个空格
//这个 . 号为正则表达式内任意字符的意思,如果新增了很多文件,一个.号就代表了所有新增
2.添加一个有意义的版本记录
git commit -m '框架的搭建' //输入,回车,红色提示错误,白色正常
git commit -m '登陆的完成'
查看仓库状态
查看状态
git status
当提示 (use “git add …” to include in what will be committed)时,就是提示你需要输入git add . 提交新增的记录
当提示
Changes to be committed:
(use “git restore —staged …” to unstage)时,需要更新一下版本信息,因为你输入过提交新增记录(git add .),然后查看仓库状态,它会提示你更新版本。
查看日志
1.常规查看日志
git log
返回的是日志所有的内容
2.精简查看日志
git log --oneline
会返回精简的日志内容
在很多日志的情况下,一直按回车,按到end后会出不去,这个时候按下字母’Q’即可跳出end
3.强大查看日志
一般用不到,只有在回退版本,又关闭了git软件,又想回到最新的版本时才会用到
git reflog
撤销
撤销本次代码的修改
git checkout .
注意!!!:在进行撤销之前需要是这个状态,(做过历史信息提交,相当于存档)
回退
进行这个操作可以回退至任意版本,由提交的 git commit -m ‘’ 来判断某个版本
1.获取你想要回退到的版本id(版本号) 先看精简版日志 语法:git log —oneline
2.拷贝一下,黄色部分的 id即可
3.执行 回退命令
git reset --hard 版本号
远程仓库
概念:
其实就是一个公共的,外网下存放代码的服务器
公司可能会自己搭建一个git 远程仓库,也有可能付费买现有的远程仓库服务
免费的公共远程仓库,大家一起用
国外 github 全球都在用
国内 码云 (码云把全部的仓库都设置为私有!!需要想码云申请公开!)
使用步骤
1.先注册好账号(码云、github、或者公司给你已注册好的公司账号)
2.登陆好码云后,新建一个远程仓库,网页右上角点加号
3.填写仓库信息
仓库名称需要填英文,刚进公司,公司已经定好了项目名称,路径是由项目名称定义的,默认私有,下面三个勾不要勾选即可。
4.仓库创建成功
注:以下数据是仓库创建成功后的页面数据,每个人注册的数据不同,仅做参考
快速设置— 如果你知道该怎么操作,直接使用下面的地址
https://gitee.com/land-birdliu/magic_of_if.git
我们强烈建议所有的git仓库都有一个README
, LICENSE
, .gitignore
文件
初始化 readme 文件
Git入门?查看 帮助 , Visual Studio / TortoiseGit / Eclipse / Xcode 下如何连接本站, 如何导入仓库
简易的命令行入门教程:
Git 全局设置:
git config --global user.name "陆行鸟"
git config --global user.email "10892819+land-birdliu@user.noreply.gitee.com"
创建 git 仓库:
mkdir magic_of_if
cd magic_of_if
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/land-birdliu/magic_of_if.git
git push -u origin "master"
已有仓库?
cd existing_git_repo
git remote add origin https://gitee.com/land-birdliu/magic_of_if.git
git push -u origin "master"
5.在你的本地仓库下打开git命令工具
输入git status
如果提示这一行:nothing to commit, working tree clean 说明你的仓库没东西可提交,即可接下一步,因为怕你有某一步修改没有提交
6.把远程仓库的地址记录在一个变量上
origin 可以改,一般不会改它
在git输入以下代码
注:以下数据是仓库创建成功后的页面数据,每个人注册的数据不同,仅做参考
git remote add origin https://gitee.com/land-birdliu/magic_of_if.git
第二行代表重复输入远程仓库地址,已经有了,不要再添加
7.开始把本地仓库的代码推送到远程仓库上
在git输入以下代码 (这一行是通用的)
git push -u origin "master"
它会要求你填写码云上的账号和密码
如果填写账号密码并且推送成功,下次你只需要这么敲,git push,和git add . git commit -m ‘项目名称’ 组成推送三连
填写错误提示:
填写错误重新填写即可
填写成功提示:
8.推送网页成功
克隆远程仓库
下载远程仓库到本地的操作,就是克隆远程仓库
1.第一步去复制这个地址,
在公司中可能是你的上司/组长将地址复制给你
2.第二步新建一个文件夹
3.在git输入git clone 地址,
地址是你上司发给你的,可查看第一步
注:会要求你输入码云账号密码
出现提示说明下载成功了
码云添加观察者
常规开源方法
第一步 点击右上角管理
第二步 往下拉点开源
第三步 勾选并提交
第二种方法:添加观察者
1.切换成开源
可以不用申请,因为私有的观察者限制只有五个人能看,开源无限制
2.往上拖动,点击仓库成员管理
3.点击观察者
4.点击邀请用户
5.仓库权限改成观察者
6.复制链接给需要邀请的人
拉取更新
在已经克隆好的仓库中,获取到该仓库在远程仓库上最新的代码。不需要重新去克隆一次。
只需要拉取更新即可
1.进入到本地仓库目录
在克隆好的文件夹内右键打开git
2.敲下拉取更新
语法: git pull
Already up to date. 提示这个说明已经更新了
有这些数据说明是正常下载主包数据
多人协作
小白今天写了100行代码先提交上了远程仓库,小黄也写了90行,当推送时码云会识别你传的版本与仓库版本,会强行拦截你的推送,并且提示你先拉取更新
小白和小黄需要沟通,由后面推送的小黄已经写了100行代码的小白来进行合并文件,决定文件最终的模样 ,小黄拉取更新 触发冲突问题 ,自己手动修改冲突文件
步骤:
1.小黄输入git add .
2.小黄输入git commit -m ‘小白喜欢吃烤面筋’
3.小黄输入git pull 报冲突问题,手动修复冲突文件,
4.小黄需要和小白沟通,再次执行 git add . git commit - m git push 正常推送
三个区域
Git内部实现,离不开它维护的三个区域
工作区(代码区)
就是我们写代码的文件夹
做好的物品先放到箱子里暂时存放
暂存区
当使用了命令 git add . = 等于我们把文件放在了暂存区中
仓库
当我们使用了命令 git commit 就是把暂存区内的文件,提交到了本地仓库中
以上三个区域,其实都是在同一个文件夹中,只不过git根据文件的不同状态 划分出来的区域而已
分支
分支可以理解为复制了一份代码 可以拥有无数个分支!
不同分支之间的正确的操作,互不影响
作用是让我们更加安全、方便开发项目
我们其实验证都是在主分支master下工作
1.线上正常运行代码 生产版本
2.正在开发阶段代码 开发版本
如果开发版本做出来,上线生产版本,功能不好用,可以直接回退到生产版本1
查看分支
git branch
开启新分支
git branch 分支名称
切换分支
注:在紫色分支做的所有操作,与其他任意分支互不影响
改之前请进行保存文件与版本记录!git add . + git commit -m
git checkout 分支名称
切换到紫色分支
合并分支
合并前需要解决冲突的问题,被合并的分支并不会消失。
需要先切换回主分支,然后输入的分支会被合并到主分支(被合并的分支并不会消失),在工作中一般是领导来进行合并,我们普通员工一般没有权限进行合并
git merge 被合并的分支名称
删除分支
注意:不要乱删!!!一旦删除,这个分支就再也回不来了!!!
git branch -d 分支名称
把本地分支推送到远程仓库
了解即可,后面会有简单的方式进行操作
1.先切换回分支
2.再在分支上执行命令
git push
然后会弹出一行代码:
git push --set-upstream origin purple
git push --set-upstream 远程仓库别名 本地仓库名称
输入这行代码,即可推送分支
查看远程仓库变量名和url
git remote -v
忽略清单
git默认情况下会管理目录下所有的文件
目录下有一些文件不需要被git管理,也不需要上传到远程仓库中
假设想要git来忽略某些文件需要用到忽略清单
比如vscode 工作区的设置 不应该被上传到服务器上
在我们初始化项目的时候 一定会新建一个忽略清单
一般的项目都要忽略什么文件 不需要我们自己想 好模版可以直接套用
不能忽略提交已经被提交过到 本地仓库的代码
.vscode
1.在本地仓库或vscode内右键新建一个忽略清单 .gitignore (中文意为忽略)
2.该文件内可以写注释,注释由#开头,
里面存放的就是想让git忽略的文件
工作中项目会提前准备好要忽略哪些文件 领导创建项目的时候就配置好了
支持正则表达式
忽略语法:.vscode/ /代表文件夹,这段代码表示忽略vscode这个文件夹
补充
退出方法:
1.按下ESC
2.英文输入法下输入:q 然后回车即可
git其他学习资料
git大全:https://gitee.com/all-about-git
Pro Git (中文版) :https://gitee.com/progit/
Git - Book :https://git-scm.com/book/zh/v2