Git基础概念
Git是一个开源的分布式版本控制系统,是目 前世界上最先进、最流行的版本控制系统。且项目越大越复杂,协同开发者越多,越能体现出Git高性能和高可用性。
三个区域:工作区、暂存区、Git仓库
三种状态:已修改modified、已暂存staged、已提交committed
配置Git
1.配置用户信息
git config --global user.name "itheima"
git config --global user.email "itheima.@itcast.cn"
/* 注意:使用了 --global选项,该命令只需要运行一次即可永久生效 */
会被写入到 c:/Users/用户名文件夹/.gitconfig文件中
2.查看配置信息
#查看所有全局配置项
git config --list --global
#查看指定的全局配置项
git config user.name & git config user.email
3.获取帮助信息
#要向打开 git config 命令的帮助手册
git help config
Git基本操作
1.显示文件状态:git status -s (-s是--short的简写)
2.跟踪新文件:
git add index.html(文件名称)
#添加到暂存区,显示文件前面有绿色A标记
3.提交更新:
git commit -m “新建了index.html文件”
#-m选项后面是本次的提交消息,对提交内容进一步描述
重新检查文件状态,得到提示如下:
已提交的文件修改:再次运行git statu命令,出现 Changes not staged for commit 这行,说明已跟踪文件的内容发生了变化,但没有放到暂存区。 且-s 前面有红色M标记
暂存已修改文件
- 开始跟踪新文件
- 把已跟踪的且已修改的文件放到暂存区
- 把有冲突的文件标记为已解决状态(绿色M标记是已修改且放入暂存区)
撤销对文件的修改
对工作区中对应文件的修改,还原成Git仓库中所保存的版本。危险性比价高,慎重操作!
#撤销对 index.html 文件的修改( 旧版本覆盖新版本)
git checkout -- index.html
向暂存区中一次性添加多个文件命令:git add .
取消暂存的文件
git reset HEAD 要移出的文件名称
跳过使用暂存区域
工作区→暂存区→Git仓库简化成工作区→Git仓库,给git commit 加上-a选项,Git自动把已经跟踪的文件暂存起来并提交,从而跳过git add步骤
git commit -a -m "描述消息"
移出文件
#从Git仓库和工作区中同时移出对应文件
git rm -f index.js
#只从Git仓库中移出指定的文件,但保留工作区中对应的文件
git rm --cached index.css
忽略文件
创建一个名为.gitignore的配置文件
| 以 # 开头的是注释 | 以 / 结尾的是目录 |
|---|---|
| 以 / 开头防止递归 | 以 ! 开头表示取反 |
glob模式是指简化了的正则表达式:
- 星号 * 匹配零个或多个任意字符
- [abc] 匹配任何一个列在方括号中的字符 (此案例匹配一个a或匹配一个b或匹配一个c)
- 问号 ? 只匹配一个任意字符
- 在方括号中使用 短划线 分隔两个字符,表示所有在这两个字符范围内都可以匹配(比如[0-9]表示匹配所有0到9的数字)
- 两个星号 ** 表示匹配任意中间目录(比如 a/** /z 可以匹配a/z、a/b/z或a/b/c/z等). 查看提交历史
回退到指定的版本
开源Github
开源许可协议
GPL
具有传染性的一种开源协议,不允许修改后和衍生的代码做为闭源的商业软件发布和销售。
使用GPL最著名的软件项目是:Linux
MIT
是目前限制最少的协议,唯一的条件:在修改后的代码或者发行包中,必须包含作者的许可信息
使用MIT的软件项目有:jquery、Node.js
开源项目托管平台
专门用于免费存放开源项目源代码的网站,主要三个平台:Github、Gitlab、Gitee
什么是Github
全球最大的开源项目托管平台,因为只支持Git作为唯一的版本控制工具。
- 为自己喜欢的开源项目做贡献(Pull Request)
- 和开源项目的作者讨论Bug和提需求(lssues)
- 把喜欢的项目复制一份作为自己的项目进行修改(Fork)
远程仓库两种访问方式
Github远程仓库两种访问方式,分别是HTTPS和SSH。实际开发中,更推荐SSH的方式访问
HTTPS:零配置,但每次访问需重复登录账号访问
SSH:需要进行额外配置,但每次访问不需重复登录账号访问
HTTPS本地仓库上传到Github
SSH Key
-
配置SSH Key
-
检测SSH Key是否配置成功
打开Git Bash,输入 ssh -T git@github.com
跳出提示消息后输入yes,如果提示消息为 Hi username!You've succesfully……则配置成功
SSH本地仓库上传Github
远程仓库克隆到本地(下载)
打开Git Bash,输入 git clone 远程仓库的地址(下载地址)
Git分支
创建新分支
git branch 分支名称
切换分支
git checkout login
快速创建和切换分支
git checkout -p 分支名称
合并分支
#切换到master分支
git checkout master
#在master分支上运行git merge命令,将login分支合并到master分支
git merge login
删除分支:
git branch -d 分支名称
本地分支推送远程仓库
# -u 表示把本地分支和远程分支进行关联,只在第一次推动的时候需要带 -u 参数
git push -u 远程仓库的别名 本地分支名称:远程分支名称
#如果远程分支的名称和本地分支名称保持一致,可以对命令进行简化
git push -u origin payment
查看远程仓库中所有的分支列表
git remote show 远程仓库名称
跟踪分支
是指:从远程仓库中,把远程分支下载到本地仓库中。
#把对应的远程分支下载到本地仓库,保持本地分支和远程分支名称相同
git checkouot 远程分支的名称
#把对应的远程分支下载到本地仓库,并把下载的本地分支进行重命名
git checkout -b 本地分支名称 远程仓库名称/远程分支名称
拉取远程分支的最新代码
git pull
删除远程分支
#删除远程仓库,指定名称的远程分支
git push 远程仓库名称 --delete 远程分支名称
总结:
初始化Git仓库的命令:git init
查看文件状态的命令:git status 或 git status -s
一次性将文件加入暂存区命令:git add .
将暂存区文件提交到Git仓库命令:git commit -m "提交消息"
-
掌握Git基本命令的使用
git init 创建本地git仓库
git add . 文件加入到暂存区中
git commit -m "提交消息" 版本提交
git status -s 检查文件状态
-
使用Github创建和维护远程仓库
能够配置Github的SSH访问
能够将本地仓库上传到Github
-
掌握Git分支的基本使用
git checkout -b 新分支名称 快速新建分支且切换到新分支
git push -u origin 新分支名称 本地分支上传github
git checkout 分支名称 切换分支
git branch 查看分支