1.git添加到工作区以及回滚
🌵1.1-提交流程:(git安装过程略)
-
新建一个文件夹a,然后进入文件夹a进行git初始化(git init)。
-
目录如下(三个文件依次分了3个版本进行的提交):
01gitlearn ├─ index.html ├─ yuefan.html └─ 东北热.txt
-
-
文件夹中新建一个文件:index.html;然后命令行执行git status的时候会发现index.html文件名是红色的。
-
git add .:文件夹中所有的文件添加到暂存区
-
git commit -m "提交信息":将暂存区中的文件提交到版本库(提交后就有自己的提交版本号信息)
-
git log:可以看到提交后的日志,看到提交版本号信息。
-
- 退出git log 需要在输入法英文状态下按
q
- 退出git log 需要在输入法英文状态下按
1.2-回滚:
- 在项目目录内可以通过git log 查看到曾经提交过的多个版本号信息
- 执行git reset --hard + 要回滚到的版本提交信息
- 回滚后在通过git log查看,只能看到前两次的版本号信息;
- 那么如何才能像一个钟摆那样,滚动过去,还能滚回来呢?
- 这时候需要通过git reflog来查看提交的版本号信息
- 继续通过git reset --hard + 版本号信息,这样就恢复了之前的版本
更全的切换撤回等操作命令请看下图:
2.分支:
-
创建分支:
git branch +分支名 -
查看分支:
git branch -
切换分支:
git checkout +分支
🐳现在主分支上master突然有bug了,而新功能还在开发阶段,如何切换修复线上bug而不影响现有开发的内容呢?
-
git checkout master:从现有分支上回到master主分支上 -
git branch fixbug:创建一个修改bug的分支 -
git checkout fixbug:从主分支上切换到master分支上去修改bug -
git branch -d fixbug:删除fixbug分支- 在
fixbug分支上修改完bug后还需要和master主分支进行合并的,接着看下面的合并到master的操作:- 第一步-先得切换回到
master:git checkout master - 第二步-合并fixbug分支到master上:
git merge fixbug - 第三步-fixbug如果没用了,那就删除
fixbug分支:git branch -d fixbug
- 第一步-先得切换回到
- 在
-
🚀
bug修复完了,也合并到了master上面去,上面提到的开发新功能也开发完成了。 重复上面流程合并代码的时候发现,如下图:
因为修改bug的时候的分支和开发新功能的分支都是基于master,bug修改好了之后,master已经不是原来的master了,他自己又往前面跑了好多路。 这时候需要手动解决✋冲突,然后提交代码。
2.1-推送到远端:
1.创建远端仓库(这里我用的是gitee:gitee.com/)
需要在全局对git进行限制:
git config --global user.name "bulala"
git config --global user.email "bulabualbula.@qq.com"
2.推送代码到远端仓库:
git remote add origin https://gitee.com/rapsai/gitlearn.git //给远仓库起名为orign,这样就可以用orign来代替后面的链接
git push -u origin master //推送到远端仓库
3.克隆仓库代码:
- 克隆的代码包括分支哈,克隆后的代码可以进行分支操作的
git clone https://gitee.com/rapsai/gitlearn.git
4.在家里拉取公司的代码:
🌵在公司开发代码:
1.切换到dev进行开发
git checkout dev
2.把master合并到dev分支(仅仅第一次的时候,这里可以看上面的图,因为分支开发完了被合并到了master,但是master的代码dev并没有,所以利用dev开发的时候要小心这个事情)
git merge master
3.开发ing
4.提交代码
git add .
git commit -m "xxx功能"
git push origin dev
🌵在公司开发继续开发:
1.切换到dev分支
git checkout dev
2.拉取远端更新的代码
git pull origin dev
3.继续开发ing
4.提交代码
git add .
git commit -m "完成了xx弹窗"
git push origin dev
🌵开发完毕要上线:
1.将dev分支合并到master进行上线
git checkout master
git merge dev
git push origin master
2.把dev也推送到远程
git checkout dev
git merge master
git push origin dev
最后附上一张git指令图: