目录
进入下面的网址,搜索git进行下载
腾讯软件中心-海量软件高速下载
代码管理: gitee svn
一、注册github账号
github是一个社区 git是一个版本管理工具,就像qq与lol的关系
github就相当于腾讯,git相当于王者
1.访问 GitHub: Where the world builds software · GitHub
2.右上角注册或者登陆
二、安装git工具
去git官网下载并安装就好了
安装的时候全部默认,全部默认,全部默认, 点下一步不要松手 不要自己去选择安装目录
三、仓库工作流程
工作区: 你写代码的项目文件夹
暂存区:临时文件区,就是你提交修改的文件区,临时中转区
Git本地仓库:你所有提交过的每个版本的资源区 (小黑窗)
Git远程仓库:相当于在网上放了一个跟本地一样的仓库,用于多人开发时共同操作
大致流程:
项目刚开工:
1.创建远程仓库
成员们第一次做项目:
2.把网上的仓库克隆到本地=>
3.新建文件夹,写代码=>
4.添加到缓存区=>
5.把缓存区的提交到本地仓库=>
6.把本地仓库的上传到远程仓库
以后:
2.把网上的仓库更新到本地 =>3.写代码=>4.添加到缓存区=>5.把缓存区的提交到本地仓库=>6.把本地仓库的上传到远程仓库
四、创建本地仓库
把远程仓库拷到本地: 小黑窗
git clone +网址
重点:为了避免各种BUG,从c盘到你的仓库管理的项目路径,所有路径都不能出现中文
1.git全局配置
1.桌面右键(或者文件)==>Git Bash Here==>打开命令行 2.输入: git config --global user.name "用户名" //用户名要用引号,写github注册的用户名 然后敲回车 3.输入: git config --global user.email "邮箱地址" //邮箱地址要用引号,写github注册的邮箱地址 然后敲回车eg:
git config --global user.name "huanglu66" git config --global user.email "11454995+huanglu66@user.noreply.gitee.com"
2.用指令创建仓库
1.创建项目文件夹:mkdir myapp 2.进入项目文件夹:cd myapp 也可以手动创建后再文件夹里面右键打开Git命令行 3.Git仓库初始化,让git来管理当前所在文件夹 git init 会有个提示:Initialized empty Git repository in C:/Users/Administrator/Desktop/app1/.git 代表初始化管理这个路径成功了 4 在文件夹中会帮我们创建一个隐藏的.git的文件夹(有的人没有:自己百度设置windows显示隐藏文件) 这个文件夹中的东西不能随意修改和删除
3.已有仓库?
cd existing_git_repo git remote add origin https://gitee.com/huanglu66/hqhuanglu.git git push -u origin "master"
五、写项目提交本地仓库
在项目文件夹中,也就是工作区
创建你的项目文件,然后写代码
1.文件夹下创建项目新文件写的新东西 然后添加到缓存区(临时中转) 语法1:git add 文件名//添加单个文件到缓存区 语法2:git add 文件名1 文件名2 文件名3//添加多个文件到缓存区 语法3:git add . //添加当前文件夹到缓存区(直接用这种方式) 2.让git把缓存区的提交到仓库 git commit -m "版本修改信息描述" //描述信息可以写中文,代表你提交的这个版本的简介 3.随着项目的进度 每天写的新的代码和文件都算新版本 每次都重复上面的1,2操作
六、版本回退
1.查看版本,确定需要回退到哪个版本
两种指令都可以查看 显示效果不一样,主要是为了得到每个版本的id号 语法1:git log 语法2:git log --pretty=online
2.回退至对应的版本
git reset --hard 上一步得到的id号
3.如果回退到对应的历史版本以后,想再回退到最新的版本
查看历史操作,然后得到对应所有版本的id: git reflog 在执行回退到你想去得版本 git reset --hard 上一步得到的id号
七、创建远程仓库
1.登陆github
2.点击Start a project按钮 没有就点左上角log
3.填仓库名 Repository name 假设填 taobao
4.描述:可填可不填
5.Public/Private 看你的项目是否允许所有网友可访问
6.Initialize this repository with a README 可选可不选,是否创建一个README文件
7.点击 Create repository 按钮创建远程仓库
8.就得到了项目的地址了:ssh或者https
八、使用远程仓库
两种种使用方式
基于HTTP协议:
1.每个组员桌面创建空文件夹app 2.在空文件夹中打开git命令行窗口:文件夹中右键,Git Bash Here 3.使用指令克隆远程仓库到本地: git clone 远程仓库地址//网站里项目中的远程仓库的HTTPS的地址 //然后就会看到远程仓库的工作区文件夹taobao,到了本地仓库app里面的taobao中了 4.配置权限(push时需要鉴权,上传用户名和密码,不然不让我们提交) 在taobao中的 .git文件夹中的config文件中: url = https://github.com/jiangyinglong/taobao.git 修改为 url = https://你的Git用户名:你的Git密码@github.com/mingzi/taobao.git // url = https://karen:abc123456@github.com/jiangyinglong/taobao.git 5.上传 进入到taobao文件夹的git命令行,在仓库上做对应操作(敲代码建文件等,提交缓存区,提交本地仓库,提交线上仓库,拉取线上仓库) 做项目:敲新代码,建立新文件等 提交缓存区: git add . (把项目中的所有的文件提交到本地暂存区) 提交本地仓库: git commit -m "description" (git pull 可输可不输) 提交线上仓库: git push //这个就是把本地仓库的更新提交到远程仓库,必须要联网才行,没有配置权限也不行(403) 然后就可以在远程仓库中(浏览器网站刷新)看到上传的新代码了 6.下载 如果多人协作开发,别人也push上传的有新文件,所以我们每天早上在做项目的时候,都应该先拉取下拉保持你的项目跟团队一致 新的一天工作: git pull //拉取,远程仓库与本地的做对比 做项目//敲新代码,建立新文件等 git add .//提交缓存区: git commit -m "description"//提交本地仓库 git push //提交线上仓库 上班pull 下班push 循环
基于SSH协议:
自己百度查一查,只是需要配置密钥
项目管理的操作跟http一样
上传你的文件的底层的网络请求一个用的是http协议, 一个用的是ssh
九、Git忽略文件
在项目目录下有很多不变的文件目录,或者有一些目录即便有改动,我们也不想让其提交到远程仓库的文档,此时我们可以使用“忽略文件”机制来实现需求。
忽略文件:需要新建一个名为: .gitignore 的文件,该文件用于声明忽略文件或不忽略文件的规则,规则对当前目录及其子目录生效。
注:该文件因为没有文件名,没办法直接在windows 目录下直接创建,可以通过Git命令行创建:touch .gitignore
常见规则写法有如下几种:
/node_mudels/ //过滤整个文件夹
*.avi //过滤所有.avi文件
/src/test.png //过滤某个具体文件
/node_mudels/README.md //不过滤具体某个文件
比如我们vue-cli脚手架配置的项目,里面自带了一个git忽略文件,在我们上传vue项目到远程仓库时,你会发现不会把node_mudels上传上去
我们自己配置vue项目时,是需要自己创建git忽略文件的,不然push会把node_mudels传上去
十、协作冲突
比如:
pull 了项目 同事karen没有pull项目
白天我在原来的a文件写了新代码 晚上下班然后push了
白天同事karen也在原来的a文件写了新代码 晚上下班push报错了
解决:
同事karen这时候只需要pull, 拉下来的文件a里面包含了她和你白天写的新代码 并且git做了标记
然后商量 你们两个的代码应该怎么整合,她整合好了以后 在执行push然后成功 她就可以下班了
总结:大家都改了同一个文件的代码时, 后上传的人 上传遇到问题 先下载 然后整合代码 再上传
步骤:push 失败-->pull -->整合代码-->push
十一、分支管理
每次提交到仓库后都会有记录,相当于就生成了一个当时那一刻的影子放在了Git仓库的仓位中,Git 把它们串成时间线,形成类似于时间轴的东西,这个时间轴就是一一个分支,我们称之为master分支.也叫主分支
在开发的时候往往是团队协作,多人进行分块开发,既要团队协作也要独立成块(高内聚低耦合),因此光有一个分 支是无法满足多人同时开发的需求的,Git 鼓励开发者使用多分支去完成一些开发任务,并且在各自的分支上工作并不会影响其他分支的正常使用,会更加安全,然后再合并.
语法:
查看分支: git branch //主分支的名字叫master,当前指令所在的分支前面会有个标记
创建分支: git branch 分支名
切换分支1: git checkout 分支名
切换分支2: git checkout -b 分支名 //切换新分支,-b选项表示创建并切换,相当于是两个操作指令。
删除分支: git branch -d 分支名 //必须先退出当前指令所在的分支,否则删除不了
合并分支: git merge 被合并的分支名
操作一遍就会了:
1.git branch //查看分支 *master 2.git branch karen //创建一个karen分支 3.git branch //查看分支 karen *master 4.git checkout karen //切换到karen分支 5.git branch //查看分支 *karen master 6.写代码,建文件等->添加到缓存区->提交到本地仓库-> 7.git checkout master //切换到master分支 8.项目文件夹中第6步的东西不见了(因为各个分支互不影响) 9.git merge karen//把karen的分支合并到master分支(此时所处的分支是master分支,7步切换过来的) 10.git branch -d karen //删除karen分支(如果此时在karen里,是删除不了的) 11.git push //合并到master主分后 提交到远程仓库