目录
2)将工作区的文件提交到本地暂存区和本地库---git add 和git commit命令
4)回退到哪个版本---使用git reset --hard命令
5)删除操作---rm命令、找回本地删除的文件(即执行回退到哪个版本---使用git reset命令)
4)合并branch01分支到master分支以及出现了合并冲突的解决方法
2、将本地库中的内容推送到远程库 ----操作人员A
5、创建远程版本库的人员A邀请开发人员B到开发团队中的方法,邀请以后,开发人员B在push的时候登录自己的GitHub账户即可推送到A创建的远程库中去
6、开发人员A从A创建的远程库中拉取B做的修改---方法一:先使用fetch后使用merge
7、开发人员A从A创建的远程库中拉去B做的修改---方法二:直接使用pull命令
8、开发人员A和开发人员B同时操作一个文件的同一行引发的推送冲突的问题
10、免密码操作---解决每次push操作的时候都会让输入GitHub账号和密码的问题
一、版本控制系统的综述
1、集中化的版本控制系统---SVN
2、分布式的版本控制系统---Git
3、SVN和Git的存储方式以及回退方法
二、分布式的版本控制系统---Git
1、基本概念介绍
a)Git的本地结构
b)分布式远程仓库
c)团队内部使用Git本地结构和远程仓库方法
d)跨公司或跨团队使用Git本地结构和远程仓库方法
2、Git基本命令
1)设置用户名和邮箱、本地仓库的初始化操作
2)将工作区的文件提交到本地暂存区和本地库---git add 和git commit命令
3)查看历史记录---git log、git reflog
a)方法一:使用git log
b)方法二:使用git log --pretty=oneline
c)方法三:使用git reflog 这样虽然索引号(第一列)短了,但是还是可以用的
4)回退到哪个版本---使用git reset --hard命令
git reset的其他参数含义(仅了解即可)
5)删除操作---rm命令、找回本地删除的文件(即执行回退到哪个版本---使用git reset命令)
3、分支
1)分支的概念
2)查看分支
a)在工作区下创建一个Test4.txt并提交到暂存区、本地库
b)将Test4.txt提交到暂存区和本地库---在Test4.txt所在的目录下右键--->Git Bash Here
c)查看当前分支,并创建分支branch01
且可以看到当前branch01分支和master分支的文件对应的索引号都是161c4b7,表明branch01分支中文件的内容和master分支中文件的内容是一样的。
d)切换到分支branch01,并更改Test4.txt中的内容,注意顺序!!!否则在branch01分支下是看不到的!!!且当前分支是branch01的话,此时做的修改master也是看不到的
然后再去更改Test4,txt中的内容:
修改内容后在branch01分支下提交到暂存区和本地库
e)切换到master分支,并更改Test4.txt的内容
在master分支下更改Test4.txt的内容
另外:可以看到切换到master分支后,在Test4.txt中是看不到branch01分支做的修改的:
然后在maser分支下保存到暂存区和本地库
f)合并master做的修改和branch01做的修改:注意必须是在master分支下做合并操作
什么时候合并冲突?
当两个分支在同一个文件下的同一个位置做修改了,再合并,此时就会出现合并冲突,可以看到此时Test4.txt中的内容为:
解决冲突的方法:
手动删除不想要的内容,然后再添加到maser的暂存区和本地库
三、远程库的操作GitHub
1、创建本地库、初始化等操作
a)初始化本地库
b)创建Demo.txt并提交到暂存区和本地库
c)在GitHub中创建一个远程仓库
第二步:输入信息
第三步:创建成功,复制地址
d)在Git中为该地址重新起一个名字
登录完毕后即可传送完成:
在E盘目录下--->右键打开Git Bash Here,表示不同的人员操作
复制地址,并执行如下命令:
执行命令:
之后本地文件:
然后再使用git remotr -v 查看别名情况:
然后开发人员B创建了新文件需要提交到开发人员A的远程库!!!
添加到本地库、远程库
所以上面的登录GitHub信息写错了,应该是写开发人员B的GitHub账户 ,上面的origin是开发人员A GitHub账户下的一个远程库地址的一个别名,因为开发人员B是克隆A的远程库,此时会自动为A的远程库地址起别名为origin
这是由于在一台电脑上做的操作的原因,删除本地缓存即可,接下来删除缓存
重新添加文件Demo3.txt
登录开发人员A的GitHub账户
在弹窗中输入你要邀请的人的GitHub账户
第n步:
登录开发人员B的GitHub账户
刷新完成后,接受邀请
之后再在/e/GitResp2 下打开git bash here,执行push操作:
需要注意的是开发人员B是克隆开发人员A的远程版本库的,所以origin是开发人员A远程库地址的别名,所以需要注意的是:
git push origin master是将开发人员B的master分支推送到开发人员A创建的远程库中去,但是按下回车后会让登陆GitHub账户,此时使用开发人员B的GitHub账户信息即可将开发人员B的master分支下的文件推送到origin对应的地址上去。
6、开发人员A从A创建的远程库中拉取B做的修改---方法一:先使用fetch后使用merge
在上面开发人员B克隆了A远程库中的文件,做了修改之后又上床到了A的远程库,此时A需要更新一下自己本地的文件
a)开发人员A可以登陆到自己的GitHub账户去查看是否有文件的改动,然后执行以下步骤
b)进入A所在的本地版本库,后右键打开Git,执行fetch操作
但此时只是将A的远程库的文件抓取到了A的本地库中,A的工作区并没有远程库的文件
c)执行merge操作
此时在A的工作区已经有了远程库中的文件
需要注意的是:在合并的中间可以在Git中使用命令查看远程库中的文件,如下:
最后再将分支切换回来
7、开发人员A从A创建的远程库中拉去B做的修改---方法二:直接使用pull命令
后回车即可
8、开发人员A和开发人员B同时操作一个文件的同一行引发的推送冲突的问题
a)开发人员A的操作---创建了一个Test.txt文件,并依次做了如下操作
<---开发人员A的工作区
b)开发人员B做了一个拉取操作
B的工作区域
c)开发人员B对Test.txt的第二行做了如下操作
并提交到了暂存区、本地库、A的远程库
d)开发人员A此时也对Test.txt文件的第二行做了修改,此时也想提交到A的远程库中去,执行如下操作
并提交到暂存区、本地库、A的远程库,但是发生了失败
此时A提交失败的解决方法:
A先拉取A远程库中的内容,手动解决冲突之后再推送
此时A的工作区文件的内容是包含了冲突信息的:
删除后:
之后再保存到暂存区、本地库、A的远程库
9、跨公司合作
以上假设A和B是在同一个公司1,A创建了远程GitHub仓库,现在假设C是公司2的开发人员C,现在C想要在A和B开发的代码基础上再做开发,需要执行如下步骤:
a)A发送自己团队的远程库地址给C
b)开发人员C利用A发送给他的远程库地址执行fork操作
b1)登录C的GitHub账户
b2)刷新完成后
b3)fork完成
C)开发人员C将C的GitHub仓库中的GitResp2中克隆下来
d)开发人员C做的修改
d2)执行推送操作,推送到C的GitHub账户下的仓库
e)此时C想将自己做的修改合并到A的远程库中去,方法如下:
e1)推送后,C先在自己的GitHub账户下做申请
e2)next
e3)next
e4)next
e5)公司1的开发人员A审核公司2的Cf发出的申请
e6)公司1的开发人员A可以给公司2的开发人员C留言,确认是否可以合并
e7)开发人员C确认
C再次回复
e8)A查看C做的修改,并通过C的请求
查看做的修改
合并按钮
最后
10、免密码操作---解决每次push操作的时候都会让输入GitHub账号和密码的问题
a)第一步
三次回车之后即可生成一个.ssh文件夹,如下
b)用notepad++打开id_rsa.pub文件,复制里面的内容
c)进入当前用户的GitHub账号,点击settings
d)点击SSH and GPG keys
e)点击New SSH key
f)粘贴刚刚复制的内容
上面的Title随便起名字
g)使用远程库的ssh地址执行push操作
g1)先获取到远程库的ssh地址,并复制
g2)给ssh地址起别名,并使用该别名执行push操作
g3)查看别名,必须查看是否成功了
g4)创建一个Test100.txt文件,并使用ssh地址的origin_ssh执行push操作
以上博文的撰写工作是基于b站视频的讲解下完成的,向老师表示感谢