Author:九僧
Version:9.0.2顶部附上音频镜像,看不能除了音频。
一、结语
在双人合作开发操作过程中,须要展开版管理工作,以利合作工程进度的掌控。
在王承恩合作开发操作过程中,不但须要版管理工作,还须要展开王承恩协作控制。
二、如是说
Git是两个开放源码的分布式系统版掌控系统,用作灵巧高效率地处置任何人或小或大的工程项目。Git 是 Linus Torvalds 为的是协助管理工作 Linux Mach合作开发而合作开发的两个开放源码的版多媒体播放。官方网站:三、Git加装
3.1 浏览Git
浏览Git
| 浏览git
3.2 加装
加装,除加装边线外,其它始终下一步棋方可
3.3 基本上实用性
加装后,关上git的cmd询问处 ,自报家门
如下信息会在提交代码时要使用,记录在你的每次提交中。以后才知道哪次提交是谁做的。
3.4 测试
测试:cmd中执行 ,查看git版
四、架构
版库:工作区中有两个隐藏目录 .git,这个目录不属于工作区,而是git的 版库,是git管理工作的所有内容
暂存区:版库中包含两个临时区域,保存下一步棋要提交的文件。
分支:版库中包含若干分支,提交的文件存储在分支中架构图五、仓库
对应的就是两个目录,这个目录中的所有文件被git管理工作起来。
以后会将两个工程项目的根目录,作为仓库。
仓库中的每个文件的改动 都由git跟踪。
5.1 新建仓库
选择两个目录,执行指令:git init
新建仓库仓库目录5.2 工作区
执行git init的目录即为工作区,如上例,D:repo1目录即为工作区【不包含.git目录】
所有文件,都首先在工作区新建,然后可以存入仓库(版库),展开版掌控。
5.3 暂存区
暂存区也在 .git目录内,工作区的文件进入仓库时,要先进入暂存区。
5.4 分支
版掌控,简单说,就是记录文件的诸多版,分支就是这些版的最终记录边线。
六、基本上操作
6.1 查看仓库状态
执行git stauts 可以看到工作区中文件的状态
未记录过的文件,是未跟踪状态6.2 暂存文件
执行 git add . 将工作区中的文件全部存入暂存区
将工作区中的文件存入暂存区6.3 提交文件
执行 git commit -m “这里写提交的描述信息”作用是将暂存区的文件存入分支,形成两个版
提交文件,形成两个版七、远程仓库
第5章中的仓库,其实是本地仓库。
当王承恩协作合作开发时,每人都在自己的本地仓库维护版。
但很重要的一点是,王承恩之间须要共享代码、合并代码,此时就须要两个远程仓库。
7.1 远程仓库工作模式
远程仓库工作模式7.2 远程仓库选型
有很多远程仓库可以选择,比如 github,码云;此两种可以注册自己测试使用,但如果是商业工程项目,须要更多支持需要付费。
公司内部也可以有自己构建的远程仓库。7.3 基本上操作
每个合作开发人员,在面对远程仓库时,会面临的一些基本上操作。
7.3.1 注册git服务器账号
在注册账号,并登录。
进入公司后,很可能会使用公司自己搭建的git服务器,则账号向领导索要方可
点击注册,完成注册操作过程 登录后显示主页7.3.2 新建远程仓库
创建远程私有仓库-01创建远程私有仓库-02创建远程私有仓库-037.3.3 本地关联远程仓库
本文档中选用仓库的 https协议的地址,将此地址关联到本地git中
如此后,本地方可用“origin” 代指远程仓库|
7.3.4 推送文件到远程仓库
将本地仓库中已经commit的内容push到远程仓库,以共享自己的代码。
push输入凭证,如此码云才能接受此次上传的内容7.3.5 克隆远程仓库
如果仓库已经由别人创建完毕,我们须要其中的内容,则可以通过git clone将其复制到本地。
新建目录“repo2”,然后在其中执行 git clone远程仓库,复制到本地,并自动初始化为两个本地仓库7.3.6 代码共享
王承恩协作合作开发时,写好代码的git push上传到远程仓库;须要代码的git pull拉取代码方可。
有人再次将本地仓库内容,上传到了远程仓库重点:此时另一方如果想获得更新,则须要做一次拉取 git pull7.3.7 命令汇总
命令描述git remote add 标识名(master) 远程地址本地关联远程仓库git push 标识名 master将本地仓库内容上传到远程仓库git pull 标识名 master从远程仓库浏览内容到本地仓库git clone 远程地址将远程仓库复制到本地,并自动形成两个本地仓库八、分支
8.1 分支简介
分支,是两个个版最终存储的边线。
分支,就是一条时间线,每次git commit形成两个个版,两个个版依次存储在分支的两个个提交点上。
分支由多个提交点组成,分支上会有两个指针,默认总是指向最新的提交点8.2 分支操作
8.2.1 查看分支
查看当前仓库的分支git branch
仓库中默认只有 master 分支
执行git commit时,默认是在master分支上保存版。
默认只有master分支8.2.2 创建分支
在商业项目合作开发操作过程中,我们不能轻易的在master分支上做操作。
我们会新建两个合作开发用的分支,在此分支上做版的记录。
当代码确实没有问题时,才会将合作开发分支上成熟的代码版添加到master分支上。
保证合作开发操作过程中,可以及时记录版,又保证master分支上每个提交点都是稳健版。创建分支8.2.3 切换分支
默认情况下,当前使用的分支是 master分支
可以切换到 dev分支,则后续的git commit便会在dev分支上新建版(提交点)
切换分支再次查看分支情况8.3 新建分支细节
新建分支时,新分支,默认有哪些内容?分支中包含了哪些次提交?
8.3.1 新分支初始内容
每个分支都有两个指针,新建两个分支,首先是新建两个指针。
而且新分支的指针会和当前分支指向同两个提交点。
新分支包含的提交点就是从第两个提交点到分支指针指向的提交点。
每个分支都有两个指针,新建两个分支,首先是新建两个指针8.3.2 多分支走向
在master分支和新分支,分别展开git add和git commit
分支情况如下图:
master分支未动,在dev分支增加一次commitmaster分支增加两个commit,dev分支再增加两个commit8.3.3 分支提交日志
查看分支的提交日志,进而看到分支中提交点的详尽情况。
提交情况如下查看当前分支的提交日志8.4 分支合并
两个分支内容的合并
git merge分支a 合并分支a
合并的方式有两种:快速合并 和 三方合并。
8.4.1 快速合并
如果分支A当前的修改,是完全基于分支B的修改而来,则B分支合并A分支,就是移动指针方可。
合并前分支状态快速合并效果(master 合并 dev)8.4.2 三方合并
在不具备快速合并的条件下,会采用三方合并。
合并前,分支状态三方合并,将2和3的更改都累加在1上,形成新的提交点三方合并,它是把两个分支的最新快照(2 和 3)以及二者最近的共同祖先(1)展开三方合并,合并的结果是生成两个新的快照(并提交)
8.4.3 合并冲突
两个分支展开合并,但它们含有对同两个文件的修改,则在合并时出现冲突,git无法决断该保留改文件哪个分支的修改。
8.4.3.1 冲突演示
场景模拟如下:
master分支修改hig.txt文件dev分支修改hig.txt
在master分支 合并 dev分支
合并dev分支此时,关上hig.txt 文件:
冲突后,git会将两个分支的内容都展示在文件中8.4.3.2 冲突解决
出现冲突后,如要由两个合作开发人员当面协商,该如何取舍,为冲突文件定义最终内容。
解决方案:
保留某一方的,删除另一方的保留双方的但无论如何,要记得删除 <<<< ==== >>>>这些本质是两人协商为冲突的内容,定制出合理的内容。根据协商,再次编辑文件提交 再次编辑后的文件九、Idea关联Git
9.1 关联Git
File > Settings关联操作过程是自动的
此处关联是Idea可以自动完成的9.2 创建仓库
新建工程项目后,将工程项目目录创建为git仓库
注意: 要在建仓库前,设置忽略文件”.gitignore”作用:被忽略的文件会被版记录忽略,版中不包含它们。
范围:不须要和其它合作开发共享的文件,具体见下图。
创建仓库前,先添加忽略文件将工程项目目录初始化为两个仓库9.3 提交-commit
创建好仓库后,做第一次提交。
选择提交菜单选择提交文件,定义提交信息之后会有些友好提示,可以忽略,点击“commit”方可9.4 创建分支
新建合作开发分支
点击右下角镜像,方可新建分支查看当前分支9.5 上传到远程仓库(push)
请首先参照第7章,创建两个远程仓库。
要求是裸库,且建议库名和项目名同名。
选择push菜单定义远程仓库地址执行,push操作push成功后 ,弹窗提示9.6 复制到本地仓库(clone)
如果有建好的远程仓库,比如公司内已经在用的仓库,或者github,码云上的一些公开仓库,
可以将远程仓库的工程项目复制到本地使用。
点击克隆菜单输入如远程仓库地址关上工程项目关上工程项目,选项9.7 更新本地工程项目
如果远程仓库有更新,则你的本地工程项目也须要一起更新。
选择pull菜单执行 pull操作更新日志显示9.8 冲突解决
合并分支时,如果出现冲突,则须要解决冲突。
冲突出现,弹窗中可以选择如下也可以直接修改冲突文件,然后commit方可
十、王承恩协作合作开发
王承恩合作开发协作,git操作
10.1 工程项目管理员( 工程项目经理 )
1> 由管理工作员负责创建两个远程库,初始的库中什么也没有,为裸库。库的名称建议和工程项目同名
2> 管理工作员会在idea中创建两个初始工程项目,其中包含.gitignore文件。 并在工程项目根目录下 建立本地库。并建立 dev分支。
3> 管理工作员将本地库上传到远程库
4> 将其它合作开发人员拉入远程库的合作开发成员列表中,使得其它合作开发人员可以访问该远程库。
流程如下:
点击添加成员选择直接添加提交查看已添加的合作开发成员|
5> master分支设置为protected,只有管理工作员有权限将代码合并到其中。dev分支设置为 常规分支所有合作开发人员 都可以其中合并代码
进入分支设置设置保护分支,让master分支不能被随更改10.2 合作开发人员
初始化:在idea中clone 远程库,获得工程项目。会建立本地库
后续的合作开发中,都要在dev分支上展开。合作开发完两个功能并测试通过后就commit 提交到本地的dev分支中,然后 上传(push)到远程dev分支中。
须要更新工程项目内容时,通过 pull 从远程仓库拉取内容。
注意:王承恩协作时,每次在 push 到远程库前,都先做一次pull,一来是把远程最新内容合并到本地,二来是核实本地内容是否和远程内容有冲突。
后续的合作开发,会接到两个个的功能任务,往复操作 2>、3>、4> 而已。
十一、经典问题
在使用https协议做push时,如果曾经使用过码云,但密码有过改动,此时会报错
使用https协议报错解决方案: 掌控面板》凭据管理工作器》删除对应凭证,再次使用时会提示重新输入密码。
删除之前的码云凭证,然后重新push方可