一、git是什么工具? 版本控制工具
二、git起到了什么作用? 项目开发中起到的作用:代码管理,上传,下载,版本回退.....
三、
1 下载安装git 网址:https://git-scm.com/ 测试是否安装成功 : git --version
2、从仓库下载代码 国内:码云 **网址:https://gitee.com/ 国外:github **网址:github.com 命名:git clone 地址
四、创建仓库
1.1 访问到码云平台:https://gitee.com/
1.2 注册==》登录账号
1.3 登录后==》新建仓库 ===》填写信息 ****使用Readme文件初始化这个仓库【勾选】
二、将本地代码以及文件提交到远程仓库
2.1 Git全局设置用户名以及邮箱
git config --global user.name "张鹏" git config --global user.email "zpsthao@163.com"
2.2 远程仓库和本地机器的连接 设置===》SSH公钥
2.3 生成SSH公钥 :https://gitee.com/help/articles/4181
a > 终端运行:ssh-keygen -t rsa -C "zpsthao@163.com" ***回车+y
b > cat ~/.ssh/id_rsa.pub 把运行后的代码复制粘贴到【SSH公钥】配置中
2.4 上传代码 ,git提交操作
//提交所有代码到中转站(注意后面有一个空格+.) git add .
//提交所有代码到本地仓库 git commit -m "注释内容"
//提交本地仓库到码云 git push
五、团队开发遇到什么样的问题?
1.1 备份多个版本,费时间,费空间
1.2 难以恢复到以前的版本
1.3 难以解决代码冲突问题
1.4 难以追溯问题以及修改人和修改时间
1.5 无法进行权限控制
六、svn和git的区别 svn:集中式 git:分布式
七、git命令
1.1 初始化仓库 ===>git init
1.2 查看配置 ===>git config -l ***进公司做项目,必配user.email 和 user.name
1.3 查看状态 ===>git status 红色的===》没有被git管理 绿色的===》存储在版本库暂缓区
1.4 添加到暂缓区 ===> git add . ****.代表所有文件 ****指定某一个文件 git add index.js
1.5 添加到分支中 ===> git commit -m '注释内容'
1.6 查看修改文件 ===> git diff ****查看某一个文件:git diff index.js ****查看所有文件 :git diff
1.7 查看修改历史 ===> git log
1.8 查看修改历史【简单形式】 ===> git reflog
1.9 回到之前的版本 回到上一个版本:git reset --hard HEAD^ 回到指定版本 :git reset --hard 版本号
八:克隆下载代码
1. 克隆下载代码
2. 配置 git config user.name '用户名' git config user.email '邮箱'
3. git add . 4. git commit -m '注释内容'
5. git push ==》 可能会报错
6. git push为什么报错? 如果远程仓库有人更新了代码,那么我们不能直接的去git push。
解决:我们必须先把远程仓库的代码下拉,然后再push
6.1 git pull
6.2 git push
九、分支的操作 ***默认的主分支 : master
1. 查看本地分支 git branch
2. 新建分支 git branch 分支名称
3. 切换分支 git checkout 分支名称
4. 如何查看远程仓库的分支 git branch -r
5. 本地分支提交到远程仓库 git push --set-upstream origin 分支名称
6. 删除本地分支 git branch -d 分支名称
7. 如何删除远程仓库的分支 git push origin --delete 分支名称
十、
1. 分支是独立的,不会互相影响 注意:在一个分支下创建另外一个新的分支,新的分支会继承旧分支之前的操作。
2. 合并分支 git merge 分支名称 注意:如果当前是在master分支下写入:git merge dev,那么master和dev会进行合并,相当于master + dev master += dev
十一:
gitflow (中、大型) master 用于保存上线版本代码,创建了dev分支 develop 用于保存相对稳定版本的代码,所有的feature都是dev分支创建的 feature 用于开发某几个功能,不同的功能可能会创建不同的分支 ***feature/login ***feature/list release 用于代码上线前的准备(测试,bug修复),是dev创建的 ***release/v1.0 bugfix 用于修复不紧急bug hotfix 用于修复紧急bug