二.git的命令与使用
将代码推到本地暂存区
//注意,add后面有一个空格
git add .
将暂存区的代码推到本地仓库
//comit后面有一个空格
git comit -m '提交说明'
将远程的代码拉下来(同事写的代码和你之前写的代码)
查看提交的详情信息
git log
查看具体的版本号,执行效果图。
根据版本号可以回退版本
输入要回退的版本号,我们先回退到第一次提交的版本,在使用两种方法恢复第二次提交的版本
git checkout 594637 //594637是我第一次提交的版本号,填你自己要回退的版本号就好
输入命令回车会回到第一次提交的版本
如果想回到最近一次提交的版本,也就是第二次提交,有两种方法
1.git checkout master
2.git checkout 版本号
三.git 的分支
git 默认master主分支,可以另外创建多个分支,分支上写的代码,可以合并到master主分支上。
创建分支有什么用呢?
假想你正在写一个删除的功能,还没写完。产品经理就跑过来,现在要加一个点赞的功能。测试也跑过来,说有一个bug需要修复,现在就要。
这种情况,你在master主分支上做要修改3次。会感觉比较混乱。于是你可以创建两个分支,分支上代码不会干扰master主分支,分支上一个用来做点赞的功能,一个用来解决bug。完成后再合并到主分支上。这样就不会那么混乱,一个一个来解决,清晰明了 。
三.git的分支
使用分支可以更加有条理地进行代码管理
创建分支命令
git branch dev
查看所有分支命令
git branch
切换分支
git checkout dev
*将dev分支的代码合并到master主分支
//先把dev分支的代码提交到本地仓库
git add .
git commit -m "我是dev分支的代码"
//切换到要合并的master分支
git checkout master
//拉取远程的代码到master分支(将同事写的代码和你之前提交到远程的代码拉回来)
git pull
//将dev 分支写的代码合并到master分支上
git marge dev
//合并完成后,把合并的代码和远程pull下来的代码一起推到远程仓库。
git push
3.合并时有冲突怎么办?
冲突就是你pull下来代码后,将dev分支的代码合并到master发现你的同事和你改了同一个地方,就会出现冲突
我们模拟一下
dev你写了第13行
这是dev分支上的代码,可以看到,是没有master主分支增加的内容,这也验证了我们之前所说的,dev分支与master分支没合并之前都是互不干扰,相互独立的。
master主分支,dev分支都在13行写了代码,dev分支合并到master主分支时会出现冲突,选择你要保留的部分,选择错了可以Ctrl+z 返回。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
我选择的是保留master主分支的代码,输入命令保存到本地仓库
git add .//.前面有空格
git commit -m "message" //message 是你的提交说明
在push到远程仓库之前,需要先把master主分支上的代码,合并到dev分支,确报dev 分支是最新的代码,防止下一次合并dev的时候,还是旧代码
在gitee上新建一个仓库,填写仓库名称,选择分支模型-单分支模型(只创建master 分支)
点击创建
在前面我们已经配置好了ssh公钥,选择ssh。由于我们已有本地的仓库,不用再另外去git init、git add .这些
直接执行已有仓库里面的命令就可以。
git remote add origin git@gitee.com:da-xiong-acridine/testproject.git
git push -u origin "master"
我们打开gitee查看一下,可以看到我们在master分支上的代码,被提交到gitee仓库了。
提交master到gitee仓库之前要先 git pull 拉下同事提交上去的代码,我这没有其他人提交,显示已是最新的,如果你同事提交了,会显示一堆加号
切回master主分支,合并user分支的代码
合并完成之后,有冲突就解决冲突,没冲突就直接push
打开gitee可以看到代码被成功提交了。
四:远程仓库拉取代码:
(1)到gitee所在的仓库,复制ssh密钥
(2)新建一个文件夹,右键打开git命令窗口,输入 命令,ctrl c v在git窗口无效,使用右键复制
(3)打开新建的文件夹clone ,就可以看到从gitee远程仓库拉下来的代码。