git 是一个安装在电脑上的 "软件",不依赖 node 环境,依赖电脑操作系统
管理文件夹,可以把本地的内容上传到远程
github/gitee
接受 git 这个 "软件" 上传代码的网站
git 软件的安装
不能使用 node 安装,需要单独下载安装包, 手动安装
下载: https://git-scm.com/
+ 检测: $ git --version
git 首次安装的配置
+ 查看配置信息: $ git config --list
+ 配置全局用户名:$ git config --global user.name "你的用户名"
+ 配置全局邮箱: $ git config --global user.email "你的邮箱"
git 安装以后
+ 得到了一个 git bash 的命令行
+ 提供了一个命令行工具, 和我们自己电脑的 cmd 或者 终端 是一样的
+ 通过这个 命令行工具 来操作 git 的指令 管理你的文件夹
=> 你可以选择使用 git bash
=> 也可以选择使用 cmd
git 操作本地文件
1. 把本地文件夹初始化成为 git 仓库
+ 打开命令行, 切换目录到你希望git 管理的目录 ,输入指令: $ git init
+ 会在当前目录下, 生成一个叫做 .git 的隐藏文件夹有,这个文件夹, 表示当前目录被 git 管理了当,目录及所有后代目录都是被 git 管理的状态
+ 当你把一个本地文件夹 变成 本地仓库 以后,git 会 "虚拟" 的把你的文件夹分成 三个部分
=> 工作区:
=> 暂存区
=> 历史区
2. 查看暂存区状态 :$ git status
3. 把工作区的内容添加到暂存区
=> $ git add 文件夹名称 单独添加一个文件夹到暂存区(注意: 空文件夹 git 不管)
=> $ git add --all 把工作区当前所有的内容都放到暂存区
-> 简写: $ git add -A
-> 简写: $ git add .
4. 把暂存区的内容回退到工作区
=> $ git reset HEAD -- 文件夹名称 单独撤回一个文件夹到工作区
=> $ git reset HEAD -- . 撤回暂存区所有内容到工作区
5. 查看历史版本: git log
6. 生成历史版本: $ git commit -m "说明"
7. 回退历史版本: $ git reset --hard 版本id
上传到远程
1. 你的历史区要有还没有上传过的版本
2. 你要有一个 远程的仓库
=> 尽量不要一个远程仓库对应多个本地仓库,会出现冲突
建立一个远程仓库
1-1. 打开 github 或者 github 网站
1-2. 点击页面的右上角 加号(+), 点击新建仓库
1-3. 填写仓库信息
仓库名称(必填),不要用中文和空格,仓库介绍(选填),中英文无所谓
选择 加密或者开源,点击创建
本地仓库和远程仓库的第一次上传操作
1. 把本地仓库和远程仓库建立连接通道
=> 告诉本地仓库, 将来你上传上传到什么位置: $ git remote add 变量名 远程地址
=> 本地仓库,以后上传可以使用 变量名 这个地址上传了
2. 把本地的历史版本推送到远程仓库: $ git push -u 变量名 master
第二次上传,只需要有未上传的历史版本就行: $ git push
第1次拉取该远程仓库的内容: $ git clone 远程仓库地址
第 n 次拉取该远程仓库: $ git pull
git 分支
查看所有分支: $ git branch
创建一个新的分支: $ git branch 分支名称(会把当前所在的分支的所有内容复制一份放在新创建的分支上)
切换分支: $ git checkout 分支名称
=> 切换到指定的分支位置
合并分支: $ git merge 分支名称(站在某一个分支上, 把其他分支的内容合并到自己身上)
分支命名和使用的基本规则
1. master 分支
创建 git 仓库时的主分支不,不接受任何代码上传,只接受分支合并的内容
2. dev 分支(development)
主开发分支, 不接受任何代码上传,只接受主功能分支合并的内容,负责把测试没有问题的版本合并到 master 上
3. feature-功能
主功能开发分支,接受该功能的代码上传,负责把该功能开发完毕以后合并给 dev 分支
4. feature-功能-bug
你自己在分配给你的分支上开辟的, 根据需求开辟出来
5. hot-bug
极其特殊的分支,直接在 master 上开辟,专门用来解决紧急bug 的分支机构可以直接合并到 master 分支上
和 git 相关的几个特殊文件
1. .gitkeep 文件
+ 只有后缀名, 没有文件名
+ 作为文件夹保持的
+ 因为 git 不管理空文件夹
=> 为了保证目录结构
=> 在空文件夹里面写一个 .gitkeep 文件
2. .gitignore 文件
+ 只有后缀名, 没有文件名
+ 作为忽略文件使用
+ 把你要忽略的文件和文件夹写在这个 .gitignore 文件内
+ git 就不在管理这个文件或者文件夹了
+ 在 .git 文件夹同级建立一个叫做 .gitignore 的文件
3. readme.md
+ 只要在项目目录内有一个 readme.md 文件
+ 当你上传到远程仓库的时候, 会直接以类似页面的形式显示在仓库上