个人学习笔记
git的安装和与初始化
-
在任意地方创建文件夹命名为demo,然后进入空白文件夹右击鼠标,点击
git bash here
会弹出git命令框
-
在命令框中,使用命令
git init
初始化为git仓库目录
-
在demo目录下放需要上传的文件
使用命令给需要上传的文件添加到索引区,此处以a.txt
为例
git add .
将文件夹内所有文件都添加进来
- 查看git是否加入索引
- 将文件上传数据库
- 查看状态。此时索引区被清空
可以用git log
命令查看操作记录
与码云gitee关联仓库
-
登录码云gitee或者github,创建一个仓库(
是个码农都知道这两个玩意,此处省略) -
然后会拿到一个仓库地址
-
如果之前有remote仓库地址,可先
git remote rm origin
删除,再进行下列操作 -
将地址重新命名,此处命名为origin,若不写也是默认为这个命名
-
第一次将本地数据库推送远程仓库需要命名和分支,如果是克隆的项目可以不需要输入
-
出现下面错误,解决方法
-
输入用户名和密码
-
确定后完成上传
git的克隆和上传项目,解决冲突的使用
克隆数据库
- 进入gitee仓库,复制仓库地址
- 输入命令克隆项目,命名为
demo2
。(此处注意克隆的路径问题,防止小白找不到文件克隆到那个文件夹而泪目)
git clone (地址) demo2
- 然后就可以对数据进行操作啦
多人操作git仓库项目,更新项目,下载数据
-
拉(下载)和克隆命令还是有区别的,想了解的也可以去查查
-
然后本地数据库就会被更新了
-
如果同一个项目文件被更改,先上传的文件会覆盖远程数据库,后上传的文件将无法成功覆盖前者,会出现以下提示
a.txt
会记录冲突地方
- 修改或合并代码
删除三行标记,添加自己的代码
然后用add、commit和push
命令上传
用git log –graph –oneline
命令一行查看日志
用命令为
git log –graph –oneline
命令设置别名
git config --global alias.别名 'log --graph --oneline'
- 相当快捷键
git的分支的操作
- 创建分支,方便发布版本、添加功能、修改bug能同时运行
- 新建仓库并初始化
-
创建分支
-
查看分支
-
切换分支
-
查看当前所在分支
-
使用命令创建分支的同时切换到该分支
-
删除一个分支
-
强制删除一个分支
-
上传数据到仓库后,修改日志只会记录到当前分支,其他分支不显示
将树存入暂存区
-
还未提交和上传修改内容文件就进行分支切换,修改的内容会从原来的分支移动到切换的分支
如果上诉情况中,在相互切换的两个分支中有相同的文件也有修改,切换分支会失败
因此,我们需要将修改的文件放入暂存区,然后使用干净的树 -
修改的文件,查看树的状态
-
放入暂存区
-
树清理干净,可以使用或者切换分支
-
如果需要将暂存的修改文件取出,使用命令
-
如果不需要暂存的文件,使用命令删除
并行处理分支
-
创建两个分支,并切换到其中一个分支中
-
查看日志,他们都处于同意历史记录中
-
修改文件并添加索引,加载到本地数据库中
再次查看日志,切换的分支历史记录向前,其他历史记录
-
分支树状态
->(Master, issue3)->issue2<-HEAD
切换到另一个分支中,修改文件并添加索引,加载到本地数据库中
再次查看日志,切换的分支历史记录向前,其他历史记录
- 分支树状态
->Master->issue3<-HEAD
->Master->issue2<-HEAD
解决与合并冲突
第一种方法:在主分支下,将记录提前的分支合并到主分支
切换到Master分支,在该分支上将issue2合并到Master分支
-
将issue3合并到Master分支,合并失败
-
没有issue3分支的记录
-
显示冲突的内容
-
修改文件冲突部分,重新提交到本地数据库
查看日志
使用另一种方式进行合并,在记录提前的分支下,将记录提前的分支合并到主分支
将操作后退一步,即取消刚刚的issue3的合并
-
切换分支到issue3
使用rebase进行合并,产生冲突,进行手动修改冲突文件
-
建立索引,重新 rebase
-
Vim编辑状态,直接使用命令 esc+”:wq”
-
切换到主分支,合并分支
-
上诉合并作用在修改bug时,起到对分支进行操作
创建两个分支“x“,”o”,在”x“分支下修改bug,创建索引提交数据库,然后就可以合并分支
模拟master分支发布版本,develop分支开发并分离出不同的功能的分支
-
创建并切换到develop分支,在该分支创建两个功能开发分支
-
分别进入fa和fb分支,修改文件创建索引并提交数据库
切换到develop分支,合并并解决冲突,然后创建索引并提交数据库,merge
-
分别切换到fa和fb分支,同步合并,rebase
-
如果需要修改bug,可以在develop分支下创建并切换新的分支,修改文件并提交到数据库后,到主分支将该分支合并,到develop分支将该分支合并
对远程数据库数据进行操作
Pull、fetch、merge的区别
-
两个人上传文件发生冲突时,用pull将文件拉下来,修改后传回远程数据库
-
用fetch命令将远程数据库放入一个空的分支里,
-
记录不会出现该分支
-
用merge合并远程数据库
将分支发布到远程数据库,从远程数据库拉取分支
-
切换到需要发送的分支
-
将分支推送到远程仓库地址origin 并且命名未develop分支
-
拉取前用git fetch命令更新本地记录的远程数据库分支的记录
- 创建并跳转分支
git查看分支状态时,出现中文编码问题
- 设置编码格式
git的历史记录标签
-
本地修改并上传本地数据库
-
添加标签说明
-
查看本次历史记录的信息
-
添加注解标签
-
查看历史日志记录
-
查看注解,未添加注解的自动用提交说明补上来
-
删除标签
-
本地修改并上传本地数据库
-
标签一起添加说明和标签名
-
在标签v1.0的基础上建立标签v1.2
修改历史记录,取消过去的提交
-
原始记录
-
添加索引后,提交本地数据库指定修改当前历史记录
-
命令revert,rebase -i,reset可以删除提交内容。但是后两者是删除提交内容,不能删除已发布的提交,而revert是生成一个新的以前的提交内容
原始记录
-
HEAD当前最新的一次提交,相当于commit的id
-
编辑说明,然后
esc + :+ wq
保存退出,然后便可以看见文件为该历史记录之前的状态
-
用reset删除分支,HEAD为当前记录,两个~为跳转到两次历史记录之前,此处可用commit的id号直接跳转
-
返回删除的分支
-
将其他分支的提交移到正确的分支提交
在主分支将别的分支的commit Id拉到当前分支提交
-
解决冲突后,提交
-
用rebase -i汇合提交,改写提交的历史记录
原始记录
-
汇合两次的提交
-
修改文件
-
修改说明
-
合并成功
使用ssl协议操作远程数据库
-
命令行cmd下或者git下使用命令
-
在C盘用户文件夹下生成一个.ssh文件夹
-
记事本打开第二个公钥,复制内容
在码云gitee下的设置内的ssh公钥内粘贴
-
确定,输入密码后添加成功
-
码云gitee创建一个仓库ssh获取ssh的地址
-
本地创建一个名为ssh的git文件夹并初始为git仓库
-
关联远程仓库
-
创建文件提交
- 提交远程数据库
- 确认信息
修改https为ssh
方法一、直接修改配置文件
方法二、用命令修改
方法三、先删后加