下载、安装:

https://git-scm.com/download/win

双击安装,下一步、下一步...



配置用户信息(自报家门)(在git-bush里配置,也可以在cmd):

git config --global user.name "zhangsan"

git config --global user.email "xxxxxxx@qq.com"

(global参数:这台机器上所有的仓库都使用这个配置)

image.png

image.png

(git config --list:查看配置信息)



可视化工具source tree的安装:

https://www.sourcetreeapp.com/

双击安装,下一步、下一步...



创建git仓库:

初始化版本库

git init

添加文件到版本库

git add

git commit

(还未到远程仓库,还需要git push命令)

查看仓库状态:

git status

image.png



image.png

工作流演示:

进入工作目录,执行clear命令(清理干净后,这是一个全新的目录)

新建文件并写入内容:

image.png

查看状态:

image.png

把文件添加到暂存区,查看状态:

image.png

提交到本地仓库:

git commit -m "first commit"

image.png

然后,产品经理临时变更需求,改了下:

image.png

刚做了修改,要提交到暂存区,不然,本地没有修改的记录:

git add test.txt

image.png

(然而,还没有进行自测,到这步,拎包走人)

在commit到本地仓库之前,产品经理pao过来说:修改不需要了。所以,要回滚到上那次:

image.png

(暂存区的修改回归到工作区。但工作区还没有弄干净clean)

通过git checkout命令将工作区的文件弄干净

在git checkout命令执行之前,先看下test.txt的内容:

image.png

执行完git checkout命令后:

image.png

image.png(干净的)

image.png

接下来,又修改了代码:

image.png

再添加到暂存区,然后提交到本地仓库

image.png

接下来,产品经理说:第二次需求其实不要做,需要回滚到第一次

查看git提交日志:

image.png

回滚到第一次提交:

image.png

(进行回滚,--hard说明最终仓库和暂存区文件都回滚到第一次提交)

现在,又变回了第一次提交后的状态:

image.png

这时候,产品经理很欠抽的说:其实大家做的这么多都不用做的!你们要把本地仓库清理干净:

image.png

(本地清空了,但暂存区和本地仓库没有)

git commit之后才说明清空了:

image.png



提交到远程github:

先要创建ssh key:

image.png

image.png

在git-bash运行命令 ssh-keygen.exe -t rsa -C "xxxxxxxxxx@qq.com"(自己的git邮箱):

image.png

其实是保存在了git的家目录:

image.png

查看生成的公钥:

image.png

将公钥粘贴到github:

image.png

测试是否是通的:

image.png

添加远程仓库:

主要用这几个命令:

git remote add origin git@github.com:xxoo/xxoo.git

git pull origin master --allow-unrelated-histories

git push -u origin master

先在github上创建新的仓库:

image.png

image.png

image.png

然后在git-bash执行相关操作:

先进入工作目录:

image.png

创建并写入README.md文档:

image.png

初始化仓库:

git init

image.png

添加到暂存区:

git add

image.png

添加到本地仓库master分支

git commit -m "first commit"

image.png

本地仓库与远程github关联起来:

git remote add origin git@github.com:xxoo/websocket_push.git

image.png

推到github上:

image.png

查看github,会发现已经提交上来了:

image.png

改一下,再次提交:

image.png

(第一次git push -u origin master,接下来就可以git push)

查看github,已经更新了:

image.png



克隆仓库:

命令:

git clone git@github.com:xxoo/xxoo.git

测试:

image.png



标签管理:

命令:

git tag——>查看所有标签

git tag name——>创建标签

git tag -a name -m "commet"——>指定提示信息

git tag -d name——>删除标签

git push origin name——>标签发布

演示:

image.png

image.png

image.png

查看标签:

image.png



分支管理:

假设现在有个场景,你准备开发一个新功能,但需要两周时间才能完成,但只写了50%代码,如果立即提交,由于代码没有写完,不完整的代码可能导致项目运行出问题。但如果想把所有的代码写完,再一次提交,就会存在丢失每天进度的风险,有了分支就不用担心这个问题了。你只要创建属于你自己的分支,别人看不到,你只要在自己的分支上工作。而在自己的分支上,怎么提交都行。当你写完之后再合并到原来分支,这样既安全,又不影响工作。

image.png

演示:

image.png

(ls -a查看,没有看到.git文件,说明没有仓库)

image.png

image.png

创建新的分支(git branch):

image.png

查看分支:

image.png

(*说明在什么分支上)

切换到分支:

image.png

基于当前分支,进行代码编辑:

image.png

把分支的新代码合并到master上去:

image.png(先切换到master分支上)

合并到master上去:

image.png

image.png

代码继续写,发现分支feature_x已经没有用了,这时候就要删掉分支了:

image.png



总结:

image.png