Git与github(小白篇)

153 阅读6分钟

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标记

暂存已修改文件
  1. 开始跟踪新文件
  2. 把已跟踪的且已修改的文件放到暂存区
  3. 把有冲突的文件标记为已解决状态(绿色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模式是指简化了的正则表达式:

  1. 星号 * 匹配零个或多个任意字符
  2. [abc] 匹配任何一个列在方括号中的字符 (此案例匹配一个a或匹配一个b或匹配一个c)
  3. 问号 ? 只匹配一个任意字符
  4. 在方括号中使用 短划线 分隔两个字符,表示所有在这两个字符范围内都可以匹配(比如[0-9]表示匹配所有0到9的数字)
  5. 两个星号 ** 表示匹配任意中间目录(比如 a/** /z 可以匹配a/z、a/b/z或a/b/c/z等). 查看提交历史

1649218385646.png 回退到指定的版本

1649218539622.png

开源Github

开源许可协议

GPL

具有传染性的一种开源协议,不允许修改后和衍生的代码做为闭源的商业软件发布和销售。

使用GPL最著名的软件项目是:Linux

MIT

是目前限制最少的协议,唯一的条件:在修改后的代码或者发行包中,必须包含作者的许可信息

使用MIT的软件项目有:jquery、Node.js

开源项目托管平台

专门用于免费存放开源项目源代码的网站,主要三个平台:Github、Gitlab、Gitee

什么是Github

全球最大的开源项目托管平台,因为只支持Git作为唯一的版本控制工具。

  1. 为自己喜欢的开源项目做贡献(Pull Request)
  2. 和开源项目的作者讨论Bug和提需求(lssues)
  3. 把喜欢的项目复制一份作为自己的项目进行修改(Fork)
远程仓库两种访问方式

Github远程仓库两种访问方式,分别是HTTPS和SSH。实际开发中,更推荐SSH的方式访问

HTTPS:零配置,但每次访问需重复登录账号访问

SSH:需要进行额外配置,但每次访问不需重复登录账号访问

HTTPS本地仓库上传到Github

1649314188857.png SSH Key

1649314470593.png

  1. 配置SSH Key

  2. 检测SSH Key是否配置成功

1649314576531.png 打开Git Bash,输入 ssh -T git@github.com

跳出提示消息后输入yes,如果提示消息为 Hi username!You've succesfully……则配置成功

SSH本地仓库上传Github

1649315033452.png

远程仓库克隆到本地(下载)

打开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 "提交消息"
  1. 掌握Git基本命令的使用

    git init 创建本地git仓库

    git add . 文件加入到暂存区中

    git commit -m "提交消息" 版本提交

    git status -s 检查文件状态

  2. 使用Github创建和维护远程仓库

    能够配置Github的SSH访问

    能够将本地仓库上传到Github

  3. 掌握Git分支的基本使用

    git checkout -b 新分支名称 快速新建分支且切换到新分支

    git push -u origin 新分支名称 本地分支上传github

    git checkout 分支名称 切换分支

    git branch 查看分支