Git和Github详细教程
<p>一 概述</p><p>说到Git和Github,前几天我们知道微软以75亿美元收购全球最大的代码托管和写作平台GitHub,而GitHub是全球最大的代码仓库,很多开发人员都将代码存放在Github,许多开发者因为担心微软无法让 GitHub 在运营上保持开放和独立,将无数项目迁移到了 GitLab上,博主也担心微软是否会让GitHub按照以前一样运营,不管那么多,下面正式开始讲解Git:</p>
<p>说到Git,很多人会想到svn,svn是集中式的版本控制工具,相比Git,博主认为Git更强大,Git出自linux之父林纳斯之手,而Git又全面兼容linux,这对编程开发人员来说是非常爽的,下面我们看看版本控制工具应该具备的功能 :</p>
<p class="ztext-empty-paragraph"> </p>
<p>1 协同修改,多人并行不悖的修改服务器端的同一个文件,数据备份。<br>2 不仅保存目录和文件的当前状态, 还能够保存每一个提交过的历史状态。<br>3 版本管理<br>4 在保存每一个版本的文件信息的时候要做到不保存重复数据, 以节约存储空间, 提高运行效率。 这方面 SVN 采用 的是增量式管理的方式, 而 Git 采取了文件系统快照的方式。<br>5 权限控制<br>6 对团队中参与开发的人员进行权限控制。<br>7 对团队外开发者贡献的代码进行审核——Git 独有。<br>8 历史记录<br>9 查看修改人、 修改时间、 修改内容、 日志信息。<br>10 将本地文件恢复到某一个历史状态。<br>11 分支管理<br>12 允许开发团队在工作过程中多条生产线同时推进任务, 进一步提高效率。 </p>
<p>二 版本控制介绍</p>
<p class="ztext-empty-paragraph"> </p>
<p>2.1 版本控制简介</p>
<p>工程设计领域中使用版本控制管理工程蓝图的设计过程。 在 IT 开发过程中也可以使用版本控制思想管理代码的版本迭代.</p>
<p class="ztext-empty-paragraph"> </p>
<p>2.2 版本控制工具</p>
<p>1.集中式版本控制工具:CVS、 SVN、 VSS and so on集中式版本控制工具的模式主要是将代码专门放在一个服务器,如下:</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="content_image lazy lazyload" alt="" width="160" data-caption="" data-size="normal" data-rawwidth="160" data-rawheight="160" data-actualsrc="https://pic1.zhimg.com/v2-3dc53bcfbb4c703f115428d2b31b6660_b.jpg" data-src="https://pic1.zhimg.com/80/v2-3dc53bcfbb4c703f115428d2b31b6660_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>2. 分布式版本控制工具:Git、 Mercurial、 Bazaar、 Darcs and so on分布式版本控制工具像Git支持分支管理,如下:</p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="817" data-caption="" data-size="normal" data-rawwidth="817" data-rawheight="681" data-original="https://pic4.zhimg.com/v2-86f2f7e93d746e5f8db4523e136b8f13_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-86f2f7e93d746e5f8db4523e136b8f13_b.jpg" data-src="https://pic4.zhimg.com/80/v2-86f2f7e93d746e5f8db4523e136b8f13_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>三 Git历史</p>
<p class="ztext-empty-paragraph"> </p>
<p>3.1 Git发展史</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="948" data-caption="" data-size="normal" data-rawwidth="948" data-rawheight="455" data-original="https://pic3.zhimg.com/v2-e7f31924625526a073a74a3f4e79b3ae_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-e7f31924625526a073a74a3f4e79b3ae_b.jpg" data-src="https://pic3.zhimg.com/80/v2-e7f31924625526a073a74a3f4e79b3ae_hd.jpg"></p>
<p>3.2 Git官网</p>
<p>Git官网地址:<span class="invisible">https://<span class="visible">git-scm.com/</span></span></p>
<p class="ztext-empty-paragraph"> </p>
<p>3.3 Git优势</p>
<p>1 大部分操作在本地完成,不需要联网</p>
<p>2 完整性保证</p>
<p>3 尽可能添加数据而不是删除或修改数据</p>
<p>4 分支操作非常快捷流畅</p>
<p>5 与 Linux 命令全面兼容</p>
<p class="ztext-empty-paragraph"> </p>
<p>3.4 Git的安装</p>
<p>这是我的百度网盘链接,里面有32位和64位安装包</p>
<p>链接:https://pan.baidu.com/s/16LHA-qajOw5h_EfP25LD7g 密码:jsfb</p>
<p>安装很简单,跟着提示点击过来就好了,有问题可以联系博主。</p>
<p class="ztext-empty-paragraph"> </p>
<p>3.5 Git的结构</p>
<p>
<img class="content_image lazy lazyload" alt="" width="265" data-caption="" data-size="normal" data-rawwidth="265" data-rawheight="346" data-actualsrc="https://pic1.zhimg.com/v2-adcd101ea55bf9b1baf4f4976b14afd8_b.jpg" data-src="https://pic1.zhimg.com/80/v2-adcd101ea55bf9b1baf4f4976b14afd8_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>3.6 Git和代码托管中心</p>
<p>局域网环境 GitLab服务器</p>
<p>外网环境下 GitHub 码云</p>
<p class="ztext-empty-paragraph"> </p>
<p>3.7 本地库和远程库</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="862" data-caption="" data-size="normal" data-rawwidth="862" data-rawheight="425" data-original="https://pic4.zhimg.com/v2-b1874fe6a1361f916e5b08deefe69843_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-b1874fe6a1361f916e5b08deefe69843_b.jpg" data-src="https://pic4.zhimg.com/80/v2-b1874fe6a1361f916e5b08deefe69843_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>本地库是存在在个人本地的,而Github中创建的是远程库,本地库push/pull从远程库中上传代码或者拉取代码,而其他开发者可以直接clone到本地库,当然还有夸团队协作,其实差不多,fork一下就好了。</p>
<p class="ztext-empty-paragraph"> </p>
<p>四 Git操作</p>
<p>4.1 本地库初始化</p>
<p>首先我在自己的工作区创建一个目录gitDev,专门用来存放gitDev这个项目,将gitDev比作我将要开发的项目。</p>
<p>mkdir gitDev,进入创建好的目录,pwd看下我的位置</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="883" data-caption="" data-size="normal" data-rawwidth="883" data-rawheight="55" data-original="https://pic2.zhimg.com/v2-feb51a86823cda64d24d2c8bd970b881_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-feb51a86823cda64d24d2c8bd970b881_b.jpg" data-src="https://pic2.zhimg.com/80/v2-feb51a86823cda64d24d2c8bd970b881_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>ls -la 可以看到我现在只有2个隐藏的目录</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="873" data-caption="" data-size="normal" data-rawwidth="873" data-rawheight="96" data-original="https://pic4.zhimg.com/v2-0c085aada93b5d77d53dc6fb18bf8f8b_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-0c085aada93b5d77d53dc6fb18bf8f8b_b.jpg" data-src="https://pic4.zhimg.com/80/v2-0c085aada93b5d77d53dc6fb18bf8f8b_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>下面我开始初始化: (git init)</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="882" data-caption="" data-size="normal" data-rawwidth="882" data-rawheight="66" data-original="https://pic4.zhimg.com/v2-bf5bd781d02cd1a09b5eecea189bedf3_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-bf5bd781d02cd1a09b5eecea189bedf3_b.jpg" data-src="https://pic4.zhimg.com/80/v2-bf5bd781d02cd1a09b5eecea189bedf3_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>ls -la查看,多了.git的隐藏文件,说明已经初始化成功了</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="879" data-caption="" data-size="normal" data-rawwidth="879" data-rawheight="112" data-original="https://pic1.zhimg.com/v2-22aebdccbec635724a9a53dec9d184f4_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-22aebdccbec635724a9a53dec9d184f4_b.jpg" data-src="https://pic1.zhimg.com/80/v2-22aebdccbec635724a9a53dec9d184f4_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>4.2 设置签名</p>
<h2>1 项目级别/仓库级别:仅在当前本地库范围内有效</h2>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="851" data-caption="" data-size="normal" data-rawwidth="851" data-rawheight="49" data-original="https://pic4.zhimg.com/v2-d75ac952a8fb71828caa7687725ae2e7_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-d75ac952a8fb71828caa7687725ae2e7_b.jpg" data-src="https://pic4.zhimg.com/80/v2-d75ac952a8fb71828caa7687725ae2e7_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="882" data-caption="" data-size="normal" data-rawwidth="882" data-rawheight="51" data-original="https://pic4.zhimg.com/v2-a06d42963f421f262dbcff9370e5bdfb_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-a06d42963f421f262dbcff9370e5bdfb_b.jpg" data-src="https://pic4.zhimg.com/80/v2-a06d42963f421f262dbcff9370e5bdfb_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>git config user.name xxxx<br>git config user.email xxxx</p>
<p>这是设置当前库范围有效的</p>
<p class="ztext-empty-paragraph"> </p>
<p>2 系统用户级别:登录当前操作系统的用户范围</p>
<p class="ztext-empty-paragraph"> </p>
<p>git config --global user.name xxxx<br>git config --global user.email xxxx</p>
<p class="ztext-empty-paragraph"> </p>
<p>3 级别优先级</p>
<p class="ztext-empty-paragraph"> </p>
<p>就近原则:项目级别优先于系统用户级别,二者都有时采用项目级别的签名</p>
<p>如果只有系统用户级别的签名,就以系统用户级别的签名为准</p>
<p>二者都没有不允许</p>
<p class="ztext-empty-paragraph"> </p>
<p>4.3 查看状态</p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="883" data-caption="" data-size="normal" data-rawwidth="883" data-rawheight="125" data-original="https://pic3.zhimg.com/v2-f7ff1a7ab35686ae2d113a41c691d756_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-f7ff1a7ab35686ae2d113a41c691d756_b.jpg" data-src="https://pic3.zhimg.com/80/v2-f7ff1a7ab35686ae2d113a41c691d756_hd.jpg"></p>
<p><br>查看工作区、暂存区状态<br><br></p>
<p>4.4 添加至缓存区</p>
<p class="ztext-empty-paragraph"> </p>
<p>首先我建立一个文件,写入test内容</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="875" data-caption="" data-size="normal" data-rawwidth="875" data-rawheight="37" data-original="https://pic3.zhimg.com/v2-cebc2bf5e059c34f780d3a56296443de_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-cebc2bf5e059c34f780d3a56296443de_b.jpg" data-src="https://pic3.zhimg.com/80/v2-cebc2bf5e059c34f780d3a56296443de_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="907" data-caption="" data-size="normal" data-rawwidth="907" data-rawheight="87" data-original="https://pic3.zhimg.com/v2-a6d8227f4c6d98485d58a904b159c8b2_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-a6d8227f4c6d98485d58a904b159c8b2_b.jpg" data-src="https://pic3.zhimg.com/80/v2-a6d8227f4c6d98485d58a904b159c8b2_hd.jpg"></p>
<p><br>查看内容</p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="768" data-caption="" data-size="normal" data-rawwidth="768" data-rawheight="73" data-original="https://pic4.zhimg.com/v2-c33ef644df8ba806929dc11a52b6019b_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-c33ef644df8ba806929dc11a52b6019b_b.jpg" data-src="https://pic4.zhimg.com/80/v2-c33ef644df8ba806929dc11a52b6019b_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>这个时候git status查看下状态</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="889" data-caption="" data-size="normal" data-rawwidth="889" data-rawheight="235" data-original="https://pic3.zhimg.com/v2-bd824af045d1d18014e4b1e4fab16cc2_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-bd824af045d1d18014e4b1e4fab16cc2_b.jpg" data-src="https://pic3.zhimg.com/80/v2-bd824af045d1d18014e4b1e4fab16cc2_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>这个时候提示我们使用git add命令添加到暂存区</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="865" data-caption="" data-size="normal" data-rawwidth="865" data-rawheight="76" data-original="https://pic4.zhimg.com/v2-9a81135ce05d935522571d4e349b31b7_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-9a81135ce05d935522571d4e349b31b7_b.jpg" data-src="https://pic4.zhimg.com/80/v2-9a81135ce05d935522571d4e349b31b7_hd.jpg"></p>
<p><br>再git status一下</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="890" data-caption="" data-size="normal" data-rawwidth="890" data-rawheight="181" data-original="https://pic2.zhimg.com/v2-463410e9ccf1eda231544a4497c668ed_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-463410e9ccf1eda231544a4497c668ed_b.jpg" data-src="https://pic2.zhimg.com/80/v2-463410e9ccf1eda231544a4497c668ed_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>提示我们 git rm 用来删除,我们git commit提交一下</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="925" data-caption="" data-size="normal" data-rawwidth="925" data-rawheight="152" data-original="https://pic1.zhimg.com/v2-4691735afa2130cb07c993cc65d4f610_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-4691735afa2130cb07c993cc65d4f610_b.jpg" data-src="https://pic1.zhimg.com/80/v2-4691735afa2130cb07c993cc65d4f610_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>再看看git status,发现没有需要提交的内容了</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="869" data-caption="" data-size="normal" data-rawwidth="869" data-rawheight="83" data-original="https://pic3.zhimg.com/v2-975c75446f6026a0421a8cd6cd9b381e_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-975c75446f6026a0421a8cd6cd9b381e_b.jpg" data-src="https://pic3.zhimg.com/80/v2-975c75446f6026a0421a8cd6cd9b381e_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>4.5 查看历史记录</p>
<p>刚刚我们提交了信息,加入想看到我提交的内容的话</p>
<p>1.git log: 很清楚的看到我刚刚提交的信息,master代码主分区</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="895" data-caption="" data-size="normal" data-rawwidth="895" data-rawheight="126" data-original="https://pic4.zhimg.com/v2-b5766679c8c716b0d34cba597f1cadab_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-b5766679c8c716b0d34cba597f1cadab_b.jpg" data-src="https://pic4.zhimg.com/80/v2-b5766679c8c716b0d34cba597f1cadab_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>2.git log --pretty=oneline可以更清楚的看到我的提交记录</p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="879" data-caption="" data-size="normal" data-rawwidth="879" data-rawheight="43" data-original="https://pic4.zhimg.com/v2-8fa75c1718b88298ab9b8b6de4f836ff_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-8fa75c1718b88298ab9b8b6de4f836ff_b.jpg" data-src="https://pic4.zhimg.com/80/v2-8fa75c1718b88298ab9b8b6de4f836ff_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>3.git reflog 也能查看日志记录</p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="868" data-caption="" data-size="normal" data-rawwidth="868" data-rawheight="59" data-original="https://pic4.zhimg.com/v2-90fb22faf024a91262721a899ec4643f_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-90fb22faf024a91262721a899ec4643f_b.jpg" data-src="https://pic4.zhimg.com/80/v2-90fb22faf024a91262721a899ec4643f_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>4.6 前进和后退(git reset --hard [局部索引值] )</p>
<p>我先多提交几次,让记录更加多</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="841" data-caption="" data-size="normal" data-rawwidth="841" data-rawheight="116" data-original="https://pic2.zhimg.com/v2-2a7d9e0d0305eed5a3e2c716ce5c2a41_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-2a7d9e0d0305eed5a3e2c716ce5c2a41_b.jpg" data-src="https://pic2.zhimg.com/80/v2-2a7d9e0d0305eed5a3e2c716ce5c2a41_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>现在可以看到我的日志记录,我提交了4次,每次新加的内容就是后面的消息,现在这个版本的内容如下:</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="891" data-caption="" data-size="normal" data-rawwidth="891" data-rawheight="119" data-original="https://pic3.zhimg.com/v2-5dbf21e72199f9914277c7969600f3a2_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-5dbf21e72199f9914277c7969600f3a2_b.jpg" data-src="https://pic3.zhimg.com/80/v2-5dbf21e72199f9914277c7969600f3a2_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="760" data-caption="" data-size="normal" data-rawwidth="760" data-rawheight="101" data-original="https://pic4.zhimg.com/v2-857cadb6282b3b6ba74e9b2a49f3fbf7_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-857cadb6282b3b6ba74e9b2a49f3fbf7_b.jpg" data-src="https://pic4.zhimg.com/80/v2-857cadb6282b3b6ba74e9b2a49f3fbf7_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>现在我要回到cc37538这个版本的记录的话:</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="914" data-caption="" data-size="normal" data-rawwidth="914" data-rawheight="85" data-original="https://pic2.zhimg.com/v2-cc1b368e428cd7bbb3ab7681c9f9ef75_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-cc1b368e428cd7bbb3ab7681c9f9ef75_b.jpg" data-src="https://pic2.zhimg.com/80/v2-cc1b368e428cd7bbb3ab7681c9f9ef75_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>可以看到,给我们的提示是Head已经在cc37538了,cat test.txt一下</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="891" data-caption="" data-size="normal" data-rawwidth="891" data-rawheight="76" data-original="https://pic2.zhimg.com/v2-a54992ba749694f181df057b51a54ac1_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-a54992ba749694f181df057b51a54ac1_b.jpg" data-src="https://pic2.zhimg.com/80/v2-a54992ba749694f181df057b51a54ac1_hd.jpg"></p>
<p><br>可以看到回到了以前的状态。</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="805" data-caption="" data-size="normal" data-rawwidth="805" data-rawheight="152" data-original="https://pic4.zhimg.com/v2-b6acc0af8f963dd4fa300dc4fd9c3a9f_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-b6acc0af8f963dd4fa300dc4fd9c3a9f_b.jpg" data-src="https://pic4.zhimg.com/80/v2-b6acc0af8f963dd4fa300dc4fd9c3a9f_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>现在可以看到HEAD指向cc37538了</p>
<p>当然还有其他方法进行回退,博主推荐大家使用这种方式。</p>
<p>只要提交到本地库的文件,都可以在历史版本中找回原来的信息</p>
<p class="ztext-empty-paragraph"> </p>
<p>4.7 分支管理</p>
<p>1.分支可以理解多个功能同时推进,最后再合并</p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="554" data-caption="" data-size="normal" data-rawwidth="554" data-rawheight="207" data-original="https://pic1.zhimg.com/v2-ae8443b26c0091cacb5c5fe43446c994_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-ae8443b26c0091cacb5c5fe43446c994_b.jpg" data-src="https://pic1.zhimg.com/80/v2-ae8443b26c0091cacb5c5fe43446c994_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>2.好处</p>
<p>同时并行推进多个功能开发,提高开发效率<br>各个分支在开发过程中,如果某一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。</p>
<p class="ztext-empty-paragraph"> </p>
<p>3.创建分支(git branch [分支名])</p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="867" data-caption="" data-size="normal" data-rawwidth="867" data-rawheight="59" data-original="https://pic1.zhimg.com/v2-92af1cf85a254d3420181ace04f09ca4_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-92af1cf85a254d3420181ace04f09ca4_b.jpg" data-src="https://pic1.zhimg.com/80/v2-92af1cf85a254d3420181ace04f09ca4_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>首先我创建修复bug的分支hot_fix,git branch -v 查看下分支</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="819" data-caption="" data-size="normal" data-rawwidth="819" data-rawheight="97" data-original="https://pic2.zhimg.com/v2-37c9858ba96efabac23dba7466142f21_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-37c9858ba96efabac23dba7466142f21_b.jpg" data-src="https://pic2.zhimg.com/80/v2-37c9858ba96efabac23dba7466142f21_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>git checkout hot_fix来切换分支</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="885" data-caption="" data-size="normal" data-rawwidth="885" data-rawheight="70" data-original="https://pic2.zhimg.com/v2-27a94922c3abe159dbcfaa7a5b8d4619_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-27a94922c3abe159dbcfaa7a5b8d4619_b.jpg" data-src="https://pic2.zhimg.com/80/v2-27a94922c3abe159dbcfaa7a5b8d4619_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>git branch -v 查看下分支,现在就切换到hot_fix分支了</p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="876" data-caption="" data-size="normal" data-rawwidth="876" data-rawheight="77" data-original="https://pic3.zhimg.com/v2-182e1953192d293db7f45aab28e52746_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-182e1953192d293db7f45aab28e52746_b.jpg" data-src="https://pic3.zhimg.com/80/v2-182e1953192d293db7f45aab28e52746_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>在hot_fix分支,输入ll,在查看下之前的内容</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="789" data-caption="" data-size="normal" data-rawwidth="789" data-rawheight="84" data-original="https://pic4.zhimg.com/v2-f8253d23d6eef6d44eaf1c686a4143ff_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-f8253d23d6eef6d44eaf1c686a4143ff_b.jpg" data-src="https://pic4.zhimg.com/80/v2-f8253d23d6eef6d44eaf1c686a4143ff_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="889" data-caption="" data-size="normal" data-rawwidth="889" data-rawheight="92" data-original="https://pic4.zhimg.com/v2-d3512f7a1997debf5d2fbd18fdf8c64f_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-d3512f7a1997debf5d2fbd18fdf8c64f_b.jpg" data-src="https://pic4.zhimg.com/80/v2-d3512f7a1997debf5d2fbd18fdf8c64f_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>其实hot_fix复制了一份master分支的内容</p>
<p>4.合并分支(git merge [ 有新内容分支名 ])</p>
<p>第一步:切换到接受修改的分支(被合并,增加新内容)上 gitcheckout [被合并分支名]<br>第二步:执行 merge 命令 git merge [有新内容分支名]</p>
<p>首先,我在hot_fix上修改test.txt文件,添加了new content内容</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="832" data-caption="" data-size="normal" data-rawwidth="832" data-rawheight="149" data-original="https://pic3.zhimg.com/v2-5e2e02116b8b996f4b87b65c77936d22_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-5e2e02116b8b996f4b87b65c77936d22_b.jpg" data-src="https://pic3.zhimg.com/80/v2-5e2e02116b8b996f4b87b65c77936d22_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>git commit到本地库</p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="744" data-caption="" data-size="normal" data-rawwidth="744" data-rawheight="69" data-original="https://pic2.zhimg.com/v2-41d1c9b76b17216fe456ec3d55a14055_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-41d1c9b76b17216fe456ec3d55a14055_b.jpg" data-src="https://pic2.zhimg.com/80/v2-41d1c9b76b17216fe456ec3d55a14055_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>git checkout 到master分支</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="751" data-caption="" data-size="normal" data-rawwidth="751" data-rawheight="45" data-original="https://pic1.zhimg.com/v2-a992228262fd0e98e4015d6fab080000_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-a992228262fd0e98e4015d6fab080000_b.jpg" data-src="https://pic1.zhimg.com/80/v2-a992228262fd0e98e4015d6fab080000_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>git merge hot_fix : 合并hot_fix 分支的内容</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="698" data-caption="" data-size="normal" data-rawwidth="698" data-rawheight="118" data-original="https://pic1.zhimg.com/v2-c965297618d19a4d3ec3b8d0d2886718_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-c965297618d19a4d3ec3b8d0d2886718_b.jpg" data-src="https://pic1.zhimg.com/80/v2-c965297618d19a4d3ec3b8d0d2886718_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>再查看下test.txt中的内容,已经将new content中的内容合并到mster中</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="881" data-caption="" data-size="normal" data-rawwidth="881" data-rawheight="132" data-original="https://pic2.zhimg.com/v2-665bb94ee265d61e249d89587a15e0a9_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-665bb94ee265d61e249d89587a15e0a9_b.jpg" data-src="https://pic2.zhimg.com/80/v2-665bb94ee265d61e249d89587a15e0a9_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>5.解决冲突</p>
<p>团队开发的时候很有可能会发生冲突,如何解决冲突,如下:</p>
<p>首先查看下我在master分支</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="855" data-caption="" data-size="normal" data-rawwidth="855" data-rawheight="63" data-original="https://pic2.zhimg.com/v2-3fdc84ae31632a0ec4a233c64faf7ef1_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-3fdc84ae31632a0ec4a233c64faf7ef1_b.jpg" data-src="https://pic2.zhimg.com/80/v2-3fdc84ae31632a0ec4a233c64faf7ef1_hd.jpg"></p>
<p>我修改了第4行的内容: edit by master</p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="887" data-caption="" data-size="normal" data-rawwidth="887" data-rawheight="267" data-original="https://pic1.zhimg.com/v2-3cdada46a07a9c575a66fbd7172f30ec_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-3cdada46a07a9c575a66fbd7172f30ec_b.jpg" data-src="https://pic1.zhimg.com/80/v2-3cdada46a07a9c575a66fbd7172f30ec_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>将内容保存到本地库中</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="878" data-caption="" data-size="normal" data-rawwidth="878" data-rawheight="72" data-original="https://pic1.zhimg.com/v2-ade226b84c5eb1336442010f48785b1c_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-ade226b84c5eb1336442010f48785b1c_b.jpg" data-src="https://pic1.zhimg.com/80/v2-ade226b84c5eb1336442010f48785b1c_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>切换到hot_fix分支</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="794" data-caption="" data-size="normal" data-rawwidth="794" data-rawheight="69" data-original="https://pic1.zhimg.com/v2-4a1381b703f43ceaed0f0a87eb2a41cc_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-4a1381b703f43ceaed0f0a87eb2a41cc_b.jpg" data-src="https://pic1.zhimg.com/80/v2-4a1381b703f43ceaed0f0a87eb2a41cc_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>查看</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="840" data-caption="" data-size="normal" data-rawwidth="840" data-rawheight="75" data-original="https://pic2.zhimg.com/v2-e49a27ace8b030add3010af8322e2c05_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-e49a27ace8b030add3010af8322e2c05_b.jpg" data-src="https://pic2.zhimg.com/80/v2-e49a27ace8b030add3010af8322e2c05_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>同样修改test.txt中的第4行内容</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="797" data-caption="" data-size="normal" data-rawwidth="797" data-rawheight="159" data-original="https://pic3.zhimg.com/v2-eb4ed781f26fbc51a3dc3c390c1b9016_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-eb4ed781f26fbc51a3dc3c390c1b9016_b.jpg" data-src="https://pic3.zhimg.com/80/v2-eb4ed781f26fbc51a3dc3c390c1b9016_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>提交到本地库中</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="830" data-caption="" data-size="normal" data-rawwidth="830" data-rawheight="87" data-original="https://pic4.zhimg.com/v2-be365ba43eca7b53b03614256e0110af_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-be365ba43eca7b53b03614256e0110af_b.jpg" data-src="https://pic4.zhimg.com/80/v2-be365ba43eca7b53b03614256e0110af_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>现在我想把hot_fix分支的内容合并到master分支中</p>
<p>切换分支:</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="658" data-caption="" data-size="normal" data-rawwidth="658" data-rawheight="66" data-original="https://pic2.zhimg.com/v2-5dad6cd4da9df3d0d40fe0f30a3a2ca9_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-5dad6cd4da9df3d0d40fe0f30a3a2ca9_b.jpg" data-src="https://pic2.zhimg.com/80/v2-5dad6cd4da9df3d0d40fe0f30a3a2ca9_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>合并got_fix分支修改的内容</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="882" data-caption="" data-size="normal" data-rawwidth="882" data-rawheight="102" data-original="https://pic2.zhimg.com/v2-2ce9a20662ab5e5b4d3f90df31a02555_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-2ce9a20662ab5e5b4d3f90df31a02555_b.jpg" data-src="https://pic2.zhimg.com/80/v2-2ce9a20662ab5e5b4d3f90df31a02555_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>查看状态</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="905" data-caption="" data-size="normal" data-rawwidth="905" data-rawheight="237" data-original="https://pic2.zhimg.com/v2-85bb6a4d4c739a087b876c9f959366f1_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-85bb6a4d4c739a087b876c9f959366f1_b.jpg" data-src="https://pic2.zhimg.com/80/v2-85bb6a4d4c739a087b876c9f959366f1_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>打开test.txt文件后</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="893" data-caption="" data-size="normal" data-rawwidth="893" data-rawheight="271" data-original="https://pic2.zhimg.com/v2-62181f30d622cb8e247ca33dd894c395_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-62181f30d622cb8e247ca33dd894c395_b.jpg" data-src="https://pic2.zhimg.com/80/v2-62181f30d622cb8e247ca33dd894c395_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>修改内容后,如下,保存退出</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="777" data-caption="" data-size="normal" data-rawwidth="777" data-rawheight="198" data-original="https://pic3.zhimg.com/v2-094497e4a6af0f27c4d422283c8c49e2_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-094497e4a6af0f27c4d422283c8c49e2_b.jpg" data-src="https://pic3.zhimg.com/80/v2-094497e4a6af0f27c4d422283c8c49e2_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>添加到暂存区</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="903" data-caption="" data-size="normal" data-rawwidth="903" data-rawheight="46" data-original="https://pic3.zhimg.com/v2-f43ea68c67ee296a57bef48c732372de_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-f43ea68c67ee296a57bef48c732372de_b.jpg" data-src="https://pic3.zhimg.com/80/v2-f43ea68c67ee296a57bef48c732372de_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>查看状态</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="879" data-caption="" data-size="normal" data-rawwidth="879" data-rawheight="180" data-original="https://pic3.zhimg.com/v2-3556702d77ed2ea93daef21045e84676_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-3556702d77ed2ea93daef21045e84676_b.jpg" data-src="https://pic3.zhimg.com/80/v2-3556702d77ed2ea93daef21045e84676_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>提交</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="875" data-caption="" data-size="normal" data-rawwidth="875" data-rawheight="84" data-original="https://pic2.zhimg.com/v2-ca627d45acaa0dcefa5eaa5cee484331_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-ca627d45acaa0dcefa5eaa5cee484331_b.jpg" data-src="https://pic2.zhimg.com/80/v2-ca627d45acaa0dcefa5eaa5cee484331_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>查看合并后的内容</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="889" data-caption="" data-size="normal" data-rawwidth="889" data-rawheight="155" data-original="https://pic3.zhimg.com/v2-c41a7a9d96be1c6a511ed0a39d2cd9e2_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-c41a7a9d96be1c6a511ed0a39d2cd9e2_b.jpg" data-src="https://pic3.zhimg.com/80/v2-c41a7a9d96be1c6a511ed0a39d2cd9e2_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>冲突的解决:</p>
<p class="ztext-empty-paragraph"> </p>
<p>第一步:编辑文件,删除特殊符号<br>第二步:把文件修改到满意的程度,保存退出<br>第三步:git add [文件名]<br>第四步:git commit -m "日志信息"<br>注意:此时 commit 一定不能带具体文件名</p>
<p class="ztext-empty-paragraph"> </p>
<p>五 Github</p>
<p>1.github</p>
<p>GitHub 首页就是注册页面:<span class="invisible">https://<span class="visible">github.com/</span></span></p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="1717" data-caption="" data-size="normal" data-rawwidth="1717" data-rawheight="619" data-original="https://pic2.zhimg.com/v2-d26c672d40f9cfe31874b6f7e9a619b9_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-d26c672d40f9cfe31874b6f7e9a619b9_b.jpg" data-src="https://pic2.zhimg.com/80/v2-d26c672d40f9cfe31874b6f7e9a619b9_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>2.在github中创建远程库</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="745" data-caption="" data-size="normal" data-rawwidth="745" data-rawheight="284" data-original="https://pic2.zhimg.com/v2-493350f09dd67574fad89b2d69b606c1_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-493350f09dd67574fad89b2d69b606c1_b.jpg" data-src="https://pic2.zhimg.com/80/v2-493350f09dd67574fad89b2d69b606c1_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="1180" data-caption="" data-size="normal" data-rawwidth="1180" data-rawheight="791" data-original="https://pic2.zhimg.com/v2-438a4ab44e6e99359b64b2cb4e23872d_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-438a4ab44e6e99359b64b2cb4e23872d_b.jpg" data-src="https://pic2.zhimg.com/80/v2-438a4ab44e6e99359b64b2cb4e23872d_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>3.为远程库地址创建别名</p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="1724" data-caption="" data-size="normal" data-rawwidth="1724" data-rawheight="657" data-original="https://pic1.zhimg.com/v2-48fa2e9c33688d5a5a464d871590f9e8_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-48fa2e9c33688d5a5a464d871590f9e8_b.jpg" data-src="https://pic1.zhimg.com/80/v2-48fa2e9c33688d5a5a464d871590f9e8_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>git remote -v 查看当前所有远程地址别名</p>
<p>git remoteadd [别名] [远程地址]</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="882" data-caption="" data-size="normal" data-rawwidth="882" data-rawheight="64" data-original="https://pic1.zhimg.com/v2-dc03412bbdc180a03cc1fd302e606d08_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-dc03412bbdc180a03cc1fd302e606d08_b.jpg" data-src="https://pic1.zhimg.com/80/v2-dc03412bbdc180a03cc1fd302e606d08_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="853" data-caption="" data-size="normal" data-rawwidth="853" data-rawheight="83" data-original="https://pic4.zhimg.com/v2-3a6840f24bd5b2028fda824e2a09c0d3_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-3a6840f24bd5b2028fda824e2a09c0d3_b.jpg" data-src="https://pic4.zhimg.com/80/v2-3a6840f24bd5b2028fda824e2a09c0d3_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>4.将本地库内容推送到github中(git push origin master)</p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="456" data-caption="" data-size="normal" data-rawwidth="456" data-rawheight="45" data-original="https://pic2.zhimg.com/v2-90391128c1ee636ceea642e9fef16edd_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-90391128c1ee636ceea642e9fef16edd_b.jpg" data-src="https://pic2.zhimg.com/80/v2-90391128c1ee636ceea642e9fef16edd_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>这个时候会弹出登陆框,输入账号密码</p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="618" data-caption="" data-size="normal" data-rawwidth="618" data-rawheight="620" data-original="https://pic3.zhimg.com/v2-e224a9292ba6513cf6097ab0c1d25ea2_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-e224a9292ba6513cf6097ab0c1d25ea2_b.jpg" data-src="https://pic3.zhimg.com/80/v2-e224a9292ba6513cf6097ab0c1d25ea2_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>成功之后,会有如下提示信息:</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="760" data-caption="" data-size="normal" data-rawwidth="760" data-rawheight="207" data-original="https://pic2.zhimg.com/v2-56c0de875d23e2c113779059a4a5df35_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-56c0de875d23e2c113779059a4a5df35_b.jpg" data-src="https://pic2.zhimg.com/80/v2-56c0de875d23e2c113779059a4a5df35_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>5. 刷新github,可以看到提交上去的信息</p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="1567" data-caption="" data-size="normal" data-rawwidth="1567" data-rawheight="607" data-original="https://pic1.zhimg.com/v2-5dbf8d7886b5892dc665763d57cc0694_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-5dbf8d7886b5892dc665763d57cc0694_b.jpg" data-src="https://pic1.zhimg.com/80/v2-5dbf8d7886b5892dc665763d57cc0694_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>进入test.txt文件,这个时候信息成功被push到github上了</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="1386" data-caption="" data-size="normal" data-rawwidth="1386" data-rawheight="360" data-original="https://pic3.zhimg.com/v2-83049e93a5a2fcd5555f72397f51aa8e_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-83049e93a5a2fcd5555f72397f51aa8e_b.jpg" data-src="https://pic3.zhimg.com/80/v2-83049e93a5a2fcd5555f72397f51aa8e_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>6. 团队协同开发 </p>
<p>我重新创建了一个目录zhangsan,假如团队中的zhangsan协同开发的话,我就去github上面把信息clone下来</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="733" data-caption="" data-size="normal" data-rawwidth="733" data-rawheight="54" data-original="https://pic1.zhimg.com/v2-a6a850a3fd584986e1053ffd23d6cba0_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-a6a850a3fd584986e1053ffd23d6cba0_b.jpg" data-src="https://pic1.zhimg.com/80/v2-a6a850a3fd584986e1053ffd23d6cba0_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>这个时候对于zhangsan的话,创建目录不用进行任何的操作,直接</p>
<p>git clone <span class="invisible">https://<span class="visible">github.com/liuXinJianGi<span class="invisible">thub/gitDev.git</span></span></span></p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="804" data-caption="" data-size="normal" data-rawwidth="804" data-rawheight="150" data-original="https://pic2.zhimg.com/v2-0cca83d6d28c8432f7789fba6c6bf895_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-0cca83d6d28c8432f7789fba6c6bf895_b.jpg" data-src="https://pic2.zhimg.com/80/v2-0cca83d6d28c8432f7789fba6c6bf895_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>ls -la 查看</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="856" data-caption="" data-size="normal" data-rawwidth="856" data-rawheight="112" data-original="https://pic4.zhimg.com/v2-90b96256d2996c30ef129593aa838c6f_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-90b96256d2996c30ef129593aa838c6f_b.jpg" data-src="https://pic4.zhimg.com/80/v2-90b96256d2996c30ef129593aa838c6f_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="731" data-caption="" data-size="normal" data-rawwidth="731" data-rawheight="83" data-original="https://pic4.zhimg.com/v2-de57ea2d85dfb219822d7194c68b9b1f_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-de57ea2d85dfb219822d7194c68b9b1f_b.jpg" data-src="https://pic4.zhimg.com/80/v2-de57ea2d85dfb219822d7194c68b9b1f_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="590" data-caption="" data-size="normal" data-rawwidth="590" data-rawheight="155" data-original="https://pic1.zhimg.com/v2-4e3b6b9e2e725b84d9dd412351a436f8_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-4e3b6b9e2e725b84d9dd412351a436f8_b.jpg" data-src="https://pic1.zhimg.com/80/v2-4e3b6b9e2e725b84d9dd412351a436f8_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>可以发现从github上把信息给克隆下来了.</p>
<p>现在zhangsan修改了信息想要提交到github上面的话,可以看到新加了一条内容:my name is zhangsan</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="723" data-caption="" data-size="normal" data-rawwidth="723" data-rawheight="202" data-original="https://pic1.zhimg.com/v2-9970b3a435264863cb72284e6554c7e0_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-9970b3a435264863cb72284e6554c7e0_b.jpg" data-src="https://pic1.zhimg.com/80/v2-9970b3a435264863cb72284e6554c7e0_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>git push origin master 会弹出登录信息,我用另外一个新账号登陆</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="859" data-caption="" data-size="normal" data-rawwidth="859" data-rawheight="159" data-original="https://pic3.zhimg.com/v2-c2813f06b8d5fd1058cb831d71317c4e_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-c2813f06b8d5fd1058cb831d71317c4e_b.jpg" data-src="https://pic3.zhimg.com/80/v2-c2813f06b8d5fd1058cb831d71317c4e_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="625" data-caption="" data-size="normal" data-rawwidth="625" data-rawheight="613" data-original="https://pic2.zhimg.com/v2-abd380fb6b8cf6e7087eb1424b3ba9c1_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-abd380fb6b8cf6e7087eb1424b3ba9c1_b.jpg" data-src="https://pic2.zhimg.com/80/v2-abd380fb6b8cf6e7087eb1424b3ba9c1_hd.jpg"></p>
<p><br>可以看到现在是拒绝让zhangsan这个账号push,因为zhangsan还没有被邀请到团队进行协同开发</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="888" data-caption="" data-size="normal" data-rawwidth="888" data-rawheight="156" data-original="https://pic2.zhimg.com/v2-a1bb4347aedd9035c854a9fdd20ed745_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-a1bb4347aedd9035c854a9fdd20ed745_b.jpg" data-src="https://pic2.zhimg.com/80/v2-a1bb4347aedd9035c854a9fdd20ed745_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>登陆远程库创建者的github账号,如下</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="1693" data-caption="" data-size="normal" data-rawwidth="1693" data-rawheight="530" data-original="https://pic2.zhimg.com/v2-088f2a18a7be5fba6597f60269a02f05_r.jpg" data-actualsrc="https://pic2.zhimg.com/v2-088f2a18a7be5fba6597f60269a02f05_b.jpg" data-src="https://pic2.zhimg.com/80/v2-088f2a18a7be5fba6597f60269a02f05_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="1625" data-caption="" data-size="normal" data-rawwidth="1625" data-rawheight="660" data-original="https://pic3.zhimg.com/v2-42701f1d0cec16ad862dd6e6b279543a_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-42701f1d0cec16ad862dd6e6b279543a_b.jpg" data-src="https://pic3.zhimg.com/80/v2-42701f1d0cec16ad862dd6e6b279543a_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="1660" data-caption="" data-size="normal" data-rawwidth="1660" data-rawheight="658" data-original="https://pic4.zhimg.com/v2-272807289182667d71ab8a3c78b7573b_r.jpg" data-actualsrc="https://pic4.zhimg.com/v2-272807289182667d71ab8a3c78b7573b_b.jpg" data-src="https://pic4.zhimg.com/80/v2-272807289182667d71ab8a3c78b7573b_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>切换zhangsan的github账号,输入邀请地址<span class="invisible">https://<span class="visible">github.com/liuXinJianGi<span class="invisible">thub/gitDev/invitations</span></span></span></p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="1248" data-caption="" data-size="normal" data-rawwidth="1248" data-rawheight="509" data-original="https://pic1.zhimg.com/v2-0815336574c4f67527113222fbb66138_r.jpg" data-actualsrc="https://pic1.zhimg.com/v2-0815336574c4f67527113222fbb66138_b.jpg" data-src="https://pic1.zhimg.com/80/v2-0815336574c4f67527113222fbb66138_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>点击接受邀请即可。这个时候push到github上</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="875" data-caption="" data-size="normal" data-rawwidth="875" data-rawheight="194" data-original="https://pic3.zhimg.com/v2-f7f3509273b3a672bca9421729fccc8e_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-f7f3509273b3a672bca9421729fccc8e_b.jpg" data-src="https://pic3.zhimg.com/80/v2-f7f3509273b3a672bca9421729fccc8e_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>可以看到已经成功上传</p>
<p class="ztext-empty-paragraph"> </p>
<p>
<img class="origin_image zh-lightbox-thumb lazy lazyload" alt="" width="1093" data-caption="" data-size="normal" data-rawwidth="1093" data-rawheight="408" data-original="https://pic3.zhimg.com/v2-63c2821b3f14da83588450dd262248de_r.jpg" data-actualsrc="https://pic3.zhimg.com/v2-63c2821b3f14da83588450dd262248de_b.jpg" data-src="https://pic3.zhimg.com/80/v2-63c2821b3f14da83588450dd262248de_hd.jpg"></p>
<p class="ztext-empty-paragraph"> </p>
<p>作者:刘信坚</p>
<p>链接:<span class="invisible">http://www.<span class="visible">imooc.com/article/35753</span></span></p>
<p>来源:慕课网</p>
<p>本文原创发布于慕课网 ,转载请注明出处,谢谢合作</p>
<hr>
<p>推荐阅读:</p>
<p>【官方】手记栏目认证作者招募,长期有效,随时报名!_慕课手记</p>
<p>想开发Angular项目,但是没有开发环境?使用Docker So Easy!</p>
<p>快速上手 Elasticsearch 的几个建议</p>
<p>编写高性能Javascript代码的若干建议</p>
<p>使用 Gitbook 打造你的电子书</p><br><br>
来源:https://www.cnblogs.com/GarfieldEr007/p/11061985.html
頁:
[1]