概念理解
1 说明: git 是分布式版本控制系统
2 优点:
1 每个人的电脑上都可以是一个完整的版本库, 适合分布式开发
2 公共服务器压力和数据量都不会太大, 速度快灵活
3 可以离线工作
3 缺点:
1 操作复杂
2 代码保密性较差 (因为是上传到别人的服务器上存储的)
4 SVN 的优缺点:
1 优点: 操作简单 / 代码保密性较强
2 缺点: 需要单独搭建SVN服务器 / 不能离线工作
5 相关理解
1 项目根目录下, 要有 git的本地仓库
2 初始化本地仓库, 会当前文件夹内分出3个区域 (工作区 -- 暂存区 -- 本地仓库)
3 上传项目的时候, 注意忽略 node_modules 包
4 工作职责:
1 拿到项目文件 -> 更新我们模块的代码 -> 提交到本地仓库 -> push
2 更新我们负责的模块: 创建分支 --> 写代码 --> 合并分支 --> 提交到本地仓库 "本次修改了哪些内容"
3 push 到远程仓库 (注意查看是否存在版本冲突)
6 git 忽略文件的规则 (.gitignore)
1 # hhh -- 注释
2 hh.js -- 忽略该文件, 每个文件占一行
3 hh/ -- 忽略该目录下的所有文件, 每个目录占一行
4 *.txt -- 忽略所有以 txt结尾的文件
5 hh
6 hh/hh* -- 忽略hh目录下的所有 -- 以hh开头的文件
7 git 基础配置
-----------------------------------------------------------------------------------------
1 设置当前操作 git的用户名+邮箱 (用于提交到远程仓库的时候, 别人知道是谁提交的)
1 查看
git config --global user.name
git config --global user.email
2 设置
git config --global user.name 'zhangwei'
git config --global user.email '[email protected]'
3 查看配置列表
git config --list
-----------------------------------------------------------------------------------------
8 必要知识点
-----------------------------------------------------------------------------------------
1 一个本地仓库可以关联多个远程仓库
-----------------------------------------------------------------------------------------
9 注意事项 (重点)
-----------------------------------------------------------------------------------------
1 本地代码上传到远程仓库时, 习惯先执行 git pull, 防止直接覆盖别人的代码
-----------------------------------------------------------------------------------------
基础操作
1 本地基础操作
-----------------------------------------------------------------------------------------
1 初始化本地仓库: git init
2 把当前目录下的全部或某个文件提交到暂存区: git add .
3 提交文件到本地仓库: git commit -m '本次提交的注释文本'(形成一次版本)
4 查看当前目录下的状态信息: git status (状态信息提示如下)
1 readme.md(红)
2 new file: readme.md(绿)
3 modified: readme.md(红)
4 modified: readme.md(绿)
-----------------------------------------------------------------------------------------
2 远程仓库相关操作
-----------------------------------------------------------------------------------------
1 本地仓库与远程仓库的并联 (并联了之后才可以执行其他操作)
1 并联: git remote add hh "仓库地址"
2 解除: git remote rm hh
3 查看: git remote -v
origin https://github.com/635031145/hh.git (fetch)
origin https://github.com/635031145/hh.git (push)
2 把从本地仓库提交到远程仓库
1 第一次提交: git push -u hh1 master (设置默认提交的远程仓库及其分支; 且执行提交操作, 可能需要帐号密码)
2 之后的提交: git push
3 获取远程仓库的数据 (pull 前先把工作区的代码提交到本地仓库)
1 git pull
2 git pull hh1 分支名
3 git clone 远程仓库地址
4 如果不需要 .git, 直接下载一个压缩包就可以了 (具体获取代码, 用哪种操作, 还需要详细了解)
5 git fetch
-----------------------------------------------------------------------------------------
3 本地分支操作
-----------------------------------------------------------------------------------------
1 分支理解
1 创建分支: 就相当于你拷贝了一份项目文件, 自由修改, 优化之后再合并到主分支上
2 切换分支: 也就是切换多个项目文件的备份
3 合并分支: 就是把我们完善的代码, 直接去覆盖主分支的内容, 形成一个新的版本
2 代码操作
1 查看分支: git branch
2 创建分支: git branch <name>
3 切换分支: git checkout <name>
4 合并分支: git merge <name>
5 删除分支: git branch -d <name>
3 操作注意
1 分支切换之前, 要先把工作区保存到本地仓库;
2 主分支上的工作区与本地仓库没有同步时, 是不允许切换分支的
3 要保证当前分支, 工作区与本地仓库同步, 才可以合并分支
4 合并出现冲突问题的时候, 解决冲突之后, 要习惯重新提交本地仓库
5 push 前 pull, 发现冲突, 处理有冲突的地方, 然后再把变更后的代码提交本地仓库, 再提交到远程仓库
4 知识点
1 注意尽量不要动主分支上的内容, master 分支代码是要发布到正式生产环境的
2 (master |MERGING) 表示当前分支处于正在合并的状态
3 也可以把当前非主分支, 发到远程仓库的指定分支上(没有就自动创建); 代码: git push hh1 分支名
4 组合操作: (创建+切换分支) --> git checkout -b <name>
5 本地仓库有自己的分支, 远程仓库也有自己的分支, 他们的不一样且没有关联的, 但是其作用是相似的
6 提示信息: Already up to date.
-----------------------------------------------------------------------------------------
git辅助命令
1 查看本地操作日志
1 git log
commit 84aebb4917e54829e8857d2b0bb4432579ad555a (HEAD -> master)
Author: zhangwei <635031145@qq.com>
Date: Tue Nov 3 20:22:30 2020 +0800
第一次, 提交我的项目文件到本地仓库
2 git reflog
d66c764 (HEAD -> master) HEAD@{
0}: commit (initial): 第一次, 提交我的项目文件到本地仓库
2 查看工作区修改的具体内容
git diff 文件名;
3 版本回退
作用: 本地仓库帮我们把, 每次提交的项目都保存下来了, 我们可以通过版本回退, 取到我们之前做的项目
代码操作:
git reset --hard HEAD^ (表示回退到上一个版本了; HEAD^^ == 上俩个; HEAD^^^ ...)
git reset --hard 191e0c7 (通过版本号, 回退到指定版本)
注意: 工作区文件也会随之改变; 也是建议尽量保存本地之后再去回退; 分支也有属于自己的版本号
4 小黑窗常用命令操作
cd d:
cd 路径
cd ..
mkdir
pwd
touch xx
vi xx
rm
ls
clear
:wq
配置 SSH
作用: 配置一下公钥, 配置好之后, 下次提交就不用输入密码了; 且提交的远程地址也要用 SSH 地址;
1 首先检查电脑是否曾经生成过私钥
cd ~/.ssh
如果已经生成过了, 想重弄一个, 在回车的时候, (y/n) --> y
2 生成私钥
ssh-keygen -t rsa -C "[email protected]"
执行成功后; 会在主目录.ssh 路径下生成两个文件: id_rsa私钥文件; id_rsa.pub公钥文件 c/Users/DELL/.ssh/
3 配置公钥
1 复制公钥内容 --> github 头像下拉菜单 --> Settings
--> 左边选 SSH and GPG keys --> New SSH key --> Title: hh1; key: 粘贴公钥内容 --> 添加
2 重新配置 -- 本地仓库和远程仓库关联 (使用ssh地址) --> 删除原来的 --> 添加新的
3 添加合作者
说明: 小明创建了一个 github 仓库, 我要和他一起去开发这个项目, 我可以克隆这个 github 仓库项目文件, 但是我不能提交阿
操作: 当前项目下 --> Settings --> Manage access --> 邀请协作者 --> 他会收到邮件 --> 同意之后,就可以一起去提交这个项目了