开始
1、git软件下载
下载地址https://git-scm.com/downloads
推荐一个下载镜像地址https://npm.taobao.org/mirrors/git-for-windows/
选择对应的操作系统进行下载,安装的过程中选择默认值,一直点击下一步即可。
安装完成后,点击鼠标右键会多出两个选项,代表安装成功,点击Git Bash Here
可以进去git命令行工具。
输入git --version
即可查看当前git版本
2、git的工作流程
git主要分为三个部分:
- git仓库:主要存放提交记录
- 暂存区:临时存放被修改文件
- 工作目录:被git管理的项目目录
开发者使用git时,需要先将工作目录中的内容提交到暂存区,再从暂存区提交到git仓库。
3、git的使用前配置
在使用git前,需要告诉git你是谁,在向git仓库中提交时需要用到。
(1)配置提交人姓名
git config --global user.name 提交人姓名
(2)配置提交人邮箱
git config --global user.email 提交人邮箱
(3)查看git配置信息
git config --list
注意:
- 如果要对配置信息进行修改,重复上述命令即可
- 配置只需要执行一次
本地仓库开发
一、提交步骤
1、初始化git仓库
git init
2、查看文件状态
git status
3、追踪文件
git add 文件列表
git add .
将工作目录中的文件全部添加到暂存区
4、向仓库中提交代码
git commit -m 提交说明
5、查看提交记录
git log
二、撤销
-
用暂存区中的文件覆盖工作目录中的文件
git checkout 文件
-
将文件从暂存区中删除
git rm --cached 文件
-
将git仓库中指定的更新记录恢复出来,并且覆盖 暂存区和工作目录
git rest --hard commitID
三、分支
为了便于理解,可以认为分支就是当前工作目录中代码的一份副本
使用分支,可以让我们从开发主线上分离出来,以免影响开发主线
3.1 分支类型
- 主分支master
第一次向git仓库中提交更新记录时自动产生的一个分支 - 开发分支develop
作为开发的分支,基于master分支创建 - 功能分支feature
作为开发具体功能的分支,基于开发分支创建
3.2分支命令
查看分支
git branch
创建分支
git branch 分支名称
切换分支
git checkout 分支名称
合并分支
git merge 来源分支
删除分支(分支被合并之后才允许删除 -D强制删除)
git beanch -d 分支名称 删除分支
-
在切换分支之前,当前分支上的工作一定要提交到git仓库中,要保持当前分支的工作区是完全干净的状态,否则就会出现问题,没有提交的工作内容就会跑到切换的分支里
-
合并分支,如果将开发分支合并到主分支,需要先切回主分支,合并分支后,开发分支还存在,还可以在开发分支上继续进行开发
-
如果一个分支不需要继续存在了,就可以删除分支,如果删除的分支没有被合并,是不能被删除的,防止误删,使用
git branch -d 分支名
;如果一个分支没有合并,但是不需要了,强制删除就可以 ,使用git branch -D 分支名
-
如果所处的分支是当前分支,是不能删除当前分支的,必须切换到其他分支才能删除当前分支
3.3暂时保存更改
- 当前分支上的功能没有开发完成,还不能提交到仓库中,但是必须切换到其他分支,可以使用储藏功能,将工作内容存储在git的剪切板中,这样当前分支就是干净的,就可以切换到其他分支了
- git的储藏功能是独立于分支的,也就是说在其他分支上也可以执行这个命令,如果在其他分支上执行这个命令,就会将改动恢复到其他分支上
存储临时改动
git stash
恢复改动
git stash pop
远程仓库开发
-
在版本控制系统中,大约90%的操作都是在本地仓库中进行的:暂存,提交,查看状态或者历史记录等等。除此之外,如果仅仅只有你一个人在这个项目里工作,你永远没有机会设置一个远程仓库。
-
只有当你需要和你的开发团队共享数据时,设置一个远程仓库才有意义。你可以把它想象成一个“文件管理服务器”,利用这个服务器可以与开发团队的其他成员进行数据交换。
-
这个时候就需要一个远程的仓库了,可以使用GitHub或者gitee
一、注册git账号
二、多人协作开发流程
- A在自己的计算机中创建本地仓库
- A在git中创建远程仓库
- A将本地仓库推送到远程仓库
- B克隆远程仓库到本地进行开发
- B讲本地仓库中的开发内容推送到远程仓库
- A将远程仓库中的最新内容拉取到本地
三、git推送
将本地仓库的内容推送到远程仓库中
git push 远程仓库地址 分支名称
记住推送的地址,下次推送只需要输入git push
即可
git push -u 远程仓库地址 分支名称
推送地址改名
git remote add 远程仓库地址别名 远程仓库地址
之后推送就可以用别名
git push 远程仓库地址别名 分支名称``git push 远程仓库地址别名 分支名称
四、git拉取
第一次操作使用git clone
命令,之后用git pull
就可以拉取远程仓库的最新版本
克隆远端数据仓库到本地
git clone 仓库地址
拉取远程仓库中最新的版本
git pull 远程仓库地址 分支名称
五、解决冲突
如果两个人同时修改了一个地方,就会发生冲突,第一个人修改了代码提交到远程仓库之后,第二个人再修改同样的地方是提交不上去的,因为远程仓库的版本高于本地仓库的版本,第二个人需要先将远程仓库拉取到本地,第二个人需要先将冲突解决,然后再提交
六、跨团队协作
- 程序员C fork仓库
- 程序员C将仓库克隆在本地进行修改
- 程序员C将仓库推送到远程
- 程序员C 发起pull reqest
- 原仓库作者审核
- 原仓库作者合并代码
七、使用ssh免登陆
在ssh协议中,身份验证用过秘钥实现,密钥匙成对出现的,分为公钥和私钥,ssh协议通过验证公钥与私钥的配对情况决定验证是否通过。
举个例子:公钥就相当于门锁,私钥就相当于钥匙,如果要是能打开门锁,就说明他们是一对的,就说明他们就验证通过了。
公钥和私钥需要开发者使用命令生成,实际上就是两个文件,公钥要放在git的账户中,私钥要保留在开发者的电脑中,当开发者通过ssh协议向远程仓库推送内容时,公钥和私钥会进行配对,如果配对成功,内容就会推送成功,推过配置失败,内容就会推送失败
1、生成秘钥
ssh-keygen
一路回车就可以了
2、秘钥存储目录
C:\Users\用户\.ssh
公钥名称:id_rsa.pub
私钥名称:id_rsa
rsa是一种非对称加密的方式
3、复制公钥全部内容
4、在git上新建一个公钥
5、接下来就可以使用ssh协议对仓库进行操作了
复制仓库项目中的ssh协议
接下来就可以使用ssh协议推送项目到远程仓库中,不用登录操作
git push 远程仓库地址(ssh地址) 分支名称
八、git忽略清单
将不需要被git管理的文件名字添加到此文件中,在执行git命令的时候,git就会忽略这些文件。
git忽略清单的名称:.gitignore
比如,你不需要node_modules test test.html这些文件,在当前项目文件夹中创建一个.gitignore的文件,把不需要的文件名写在gitignore中
九、为仓库添加详细说明
在当前项目文件中添加readme.md
文件,在文件中添加需要的说明,然后按照提交的步骤提交该文件,在远程仓库的列表就可以显示该文件