本人是在obsidian与gitee同步教程之后为了深入学习gitee和git才记录了这篇文章,因此后面会用到push的指令,并且是基于ubuntu系统的,后面的终端输出可能会和学习视频有所不同~(对学习gitee影响不大)
本文是在学习波波酱老师的git教程后自己实操做的笔记与总结,用于个人学习,并将笔记分享出来~
git学习某站有很多教程,但是作为新手和急于使用简单操作的我来说,选择这个教程很不错~
感谢老师的资料(以下部分截图来自视频教程,仅作学习和理解使用)!
如有侵权,请联系删除!
一.Git基础操作命令
1.常用命令——提交本地库
1.1设置用户签名
只需要在电脑第一次配置git时操作,目的:让电脑知道是谁在git,类似于笔名(用户名和邮箱任意,不一定真实)
1.2初始化本地库
git init
(项目文件内执行)
每一个项目都要初始化,会产生.git的隐藏文件夹
本地电脑的进程如下:
1.3查看本地库状态
在项目文件夹终端输入:git status
会提示仓库状态:
目前是有所修改,但没有暂存,所以接下来进行下一步:添加到暂存区
1.4添加/移除暂存区
当然,也可以添加全部:git add -A
1.5提交本地仓库
注意:可以反复修改文件并执行以上操作,由于我在提交的时候,笔记已经修改了,所以终端输出可能和教程不一样
1.6查看日志
终端退出查看:q键
2.常用命令——版本穿梭
git log查看日志信息,里面包含了版本号:git reflog可以找到所有的版本号
版本穿梭,就使用这个版本号(代表不同版本,为了方便区分,请做好日志记录)
注意:这是在本地仓库,所以切换不会设计远程仓库的改变
二.git分支操作
2.1查看-创建-切换-删除分支
查看分支
创建分支git branch 分支名
切换分支git checkout 分支名(切换分支)
注意:切换的时候记得把改动的文件暂存并提交
此处练习出现小差错:
我不小心修改了master的文件,然后切到dev分支了,然后我的笔记是间隔一分钟就上传到gitee,这导致了合并冲突(两个分支的同一文件不一样了,可能我还没有分析清楚),最后搞了好久,直接把远程仓库的workspace.json复制到dev分支,暂存提交了并push(推到远程仓库,若是还没有创建,可以先不执行),才解决了。
总之,谨慎行事 ^b5880b
删除分支
就按下面这个命令来就行
注意:不能删除当前分支
2.2合并分支
按照这个图来就行(老师总结得简洁易懂~)
大概意思:
正常合并:
原本有一个master分支(主分支),后来创建了一个dev分支(完全克隆了master分支),这个时候对dev的文件进行了修改并提交(不会影响到master),然后又回到主分支,发现dev中的修改是想要的,想同步过来(合并),于是你就用git merge 分支名
将指定分支合并到当前分支(一般是合并到主分支),如果合并成功(没有冲突),就已经是成功提交的状态,不用再暂存、提交。
冲突合并:
但是合并失败(怎么更好理解这个冲突呢?我是这样理解:被合并的分支(master)是要合并分支(dev)的子集,就没有冲突;被合并的与要合并的是交集或者不相交,就会冲突),因为你既然要合并,那你要确认到底哪个才是你想要的,而不是乱七八糟揉一块就行了(看上图)。因此,你就要修改对应文件——解决冲突。
手工处理冲突:
就是把你想要的修改保留,不想要的删去就可以了,<<<<、>>>这些都删了
注意:最后记得暂存并提交~
分析的时候搭配使用:git status
——查看状态git branch -v
——查看分支版本git log
、git reflog
——查看日志
2.3分支开发规范
了解了解挺好的,毕竟是从企业开发角度思考~
三.gitee远程仓库操作
大纲如下:
作用是什么?gitee=同步=联网=共享,而之前章节就当于,本地=单机,Ok,懂了开干!
3.1Gitee注册、创建、SSH公钥、添加与推送仓库master
参考资料
可以替换为:git push -u origin master
3.2推送远程仓库dev分支
前面讲过本地git的分支,包括切换和合并,知道:在创建分支的时候,是复制的当前分支的最新版本,远程仓库(gitee)也一样。
在gitee官网你自己的仓库界面创建分支,比如在主分支master基础上创建dev分支,也是copy当前主分支的最新版本:
此时创建好了远程分支dev,你再修改主分支master,它是不会修改的,需要push。
为了方便理解:有冲突,先拉再推!
推送万能公式:
git push -u origin 本地分支(即使不是当前分支也可以):远程目的分支
3.3克隆与拉取远程仓库
克隆
克隆只克隆主分支,可以输入git clone gitee 克隆连接
,也可以直接在gitee的克隆复制命令:
抓取与合并、拉取
拉取pull=抓取(fetch)+合并(merge)
直接用pull吧!pull可以指定分支,不指定就是全拉
3.4解决合并冲突问题
的确验证了这个冲突:
按照之前说的,手动调整调整,就可!
四.最后总结
推送万能公式:
git push -u origin 本地分支(即使不是当前分支也可以):远程目的分支