<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8">
<meta name="generator" content="pdf2htmlEX">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<link rel="stylesheet" href="https://static.pudn.com/base/css/base.min.css">
<link rel="stylesheet" href="https://static.pudn.com/base/css/fancy.min.css">
<link rel="stylesheet" href="https://static.pudn.com/prod/directory_preview_static/6267723a4f8811599eeaa5ab/raw.css">
<script src="https://static.pudn.com/base/js/compatibility.min.js"></script>
<script src="https://static.pudn.com/base/js/pdf2htmlEX.min.js"></script>
<script>
try{
pdf2htmlEX.defaultViewer = new pdf2htmlEX.Viewer({});
}catch(e){}
</script>
<title></title>
</head>
<body>
<div id="sidebar" style="display: none">
<div id="outline">
</div>
</div>
<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6267723a4f8811599eeaa5ab/bg1.jpg"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls0 ws0">Git<span class="_ _0"> </span><span class="ff2">使用教程</span> </div><div class="t m0 x2 h3 y2 ff3 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x2 h4 y3 ff4 fs1 fc0 sc0 ls0 ws0">原文出处:<span class="ff3"> </span><span class="fc1">涂根华的博客</span><span class="ff3"> </span></div><div class="t m0 x2 h5 y4 ff2 fs1 fc0 sc0 ls0 ws0">一:<span class="ff1 ls1">Git<span class="_ _1"> </span></span>是什么?<span class="ff3"> </span></div><div class="t m0 x2 h4 y5 ff3 fs1 fc0 sc0 ls0 ws0"> Git<span class="_ _1"> </span><span class="ff4">是目前世界上<span class="_ _2"></span>最先进的分布式版本控制系统。<span class="_ _2"></span><span class="ff3"> </span></span></div><div class="t m0 x2 h5 y6 ff2 fs1 fc0 sc0 ls0 ws0">二:<span class="ff1">SVN<span class="_ _1"> </span></span>与<span class="_ _1"> </span><span class="ff1 ls1">Git<span class="_ _1"> </span></span>的最主<span class="_ _2"></span>要的区别?<span class="ff3"> </span></div><div class="t m0 x2 h4 y7 ff3 fs1 fc0 sc0 ls0 ws0"> SVN<span class="_ _1"> </span><span class="ff4">是集中式版本控制系统,版本库是集<span class="_ _2"></span>中放在中央服务器的,而干活的时候,</span></div><div class="t m0 x2 h4 y8 ff4 fs1 fc0 sc0 ls0 ws0">用的都是自己的电脑,所以首先要从中央服<span class="_ _2"></span>务器哪里得到最新的版<span class="_ _2"></span>本,然后干活,</div><div class="t m0 x2 h4 y9 ff4 fs1 fc0 sc0 ls0 ws0">干完后,需要把自己做完的活推送到中央服<span class="_ _2"></span>务器。集中式版本控制<span class="_ _2"></span>系统是必须联网</div><div class="t m0 x2 h4 ya ff4 fs1 fc0 sc0 ls0 ws0">才能工作,如果在局域网还可以,带宽够大<span class="_ _2"></span>,速度够快,如果在互<span class="_ _2"></span>联网下,如果网</div><div class="t m0 x2 h4 yb ff4 fs1 fc0 sc0 ls0 ws0">速慢的话,就纳闷了。<span class="ff3"> </span></div><div class="t m0 x2 h4 yc ff3 fs1 fc0 sc0 ls0 ws0"> Git<span class="_ _1"> </span><span class="ff4">是分布式版本控<span class="_ _2"></span>制系统,那么它就没有<span class="_ _2"></span>中央服务器的,每个人的电脑就是</span></div><div class="t m0 x2 h4 yd ff4 fs1 fc0 sc0 ls0 ws0">一个完整的版本库,这样,工作的时候就不<span class="_ _2"></span>需要联网了,因为版本<span class="_ _2"></span>都是在自己的电</div><div class="t m0 x2 h4 ye ff4 fs1 fc0 sc0 ls0 ws0">脑上。既然每个人的电脑都有一个完整的版<span class="_ _2"></span>本库,那多个人如何协<span class="_ _2"></span>作呢?比如说自</div><div class="t m0 x2 h4 yf ff4 fs1 fc0 sc0 ls0 ws0">己在电脑上改了文件<span class="_ _1"> </span><span class="ff3">A</span>,其他人也在电脑上<span class="_ _2"></span>改了文件<span class="_ _3"> </span><span class="ff3">A</span>,这时,你们两之间只需把</div><div class="t m0 x2 h4 y10 ff4 fs1 fc0 sc0 ls0 ws0">各自的修改推送给对方,就可以互相看到对<span class="_ _2"></span>方的修改了。<span class="_ _2"></span><span class="ff3"> </span></div><div class="t m0 x2 h5 y11 ff2 fs1 fc0 sc0 ls0 ws0">三:在<span class="_ _3"> </span><span class="ff1">windows<span class="_ _1"> </span></span>上如何安装<span class="_ _3"> </span><span class="ff1 ls1">Git</span>?<span class="ff3"> </span></div><div class="t m0 x2 h4 y12 ff3 fs1 fc0 sc0 ls0 ws0"> msysgit<span class="_ _3"> </span><span class="ff4">是</span> windows<span class="_ _3"> </span><span class="ff4">版的<span class="_ _1"> </span></span>Git,<span class="ff4">如下:</span> </div><div class="t m0 x2 h3 y13 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_ _4"> </span> </div><div class="t m0 x2 h4 y14 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff4">需要从网上下载一个,然后进行默认安装即<span class="_ _2"></span>可。安装完成后,在开始<span class="_ _2"></span>菜单里面找</span></div><div class="t m0 x2 h4 y15 ff4 fs1 fc0 sc0 ls0 ws0">到<span class="ff3"> </span>“<span class="ff3">Git </span>–<span class="ff3">> Git Bas<span class="_ _2"></span>h<span class="ff4">”</span>,<span class="ff4">如下:</span> </span></div><div class="t m0 x2 h3 y16 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_ _5"> </span> </div><div class="t m0 x2 h4 y17 ff4 fs1 fc0 sc0 ls0 ws0">会弹出一个类似的命令窗口的东西,就说明<span class="_ _3"> </span><span class="ff3">Gi<span class="_ _2"></span>t<span class="_ _3"> </span><span class="ff4">安装成功。如下:</span> </span></div><a class="l" rel='nofollow' onclick='return false;'><div class="d m1"></div></a></div><div class="pi" data-data='{"ctm":[1.611792,0.000000,0.000000,1.611792,0.000000,0.000000]}'></div></div>
</body>
</html>
<div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6267723a4f8811599eeaa5ab/bg2.jpg"><div class="t m0 x2 h3 y18 ff3 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x3 h3 y19 ff3 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x2 h4 y1a ff4 fs1 fc0 sc0 ls0 ws0">安装完成后,还需要最后一步设置,在命令<span class="_ _2"></span>行输入如下:<span class="_ _2"></span><span class="ff3"> </span></div><div class="t m0 x2 h3 y1b ff3 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x4 h3 y1c ff3 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x2 h4 y1d ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff4">因为<span class="_ _3"> </span></span>Git<span class="_ _1"> </span><span class="ff4">是分布式版本控制系统,所以需要填<span class="_ _2"></span>写用户名和邮箱作为一<span class="_ _2"></span>个标识。<span class="ff3"> </span></span></div><div class="t m0 x2 h5 y1e ff1 fs1 fc0 sc0 ls0 ws0"> <span class="ff2">注意:<span class="ff3">git config <span class="ff4">–</span>gl<span class="_ _2"></span>obal <span class="ff4">参数,有了这个参数,表示你这台机器上<span class="_ _2"></span>所有的<span class="_ _3"> </span><span class="ff3">Git</span></span></span></span></div><div class="t m0 x2 h4 y1f ff4 fs1 fc0 sc0 ls0 ws0">仓库都会使用这个配置,当然你也可以对某<span class="_ _2"></span>个仓库指定的不同的用<span class="_ _2"></span>户名和邮箱。<span class="ff3"> </span></div><div class="t m0 x2 h5 y20 ff2 fs1 fc0 sc0 ls0 ws0">四:如何操作?<span class="ff3"> </span></div><div class="t m0 x2 h4 y21 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff4">一:创建版本库。</span> </div></div><div class="pi" data-data='{"ctm":[1.611792,0.000000,0.000000,1.611792,0.000000,0.000000]}'></div></div>
<div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6267723a4f8811599eeaa5ab/bg3.jpg"><div class="t m0 x2 h4 y18 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff4">什么是版本库?版本库又名仓库,英文名<span class="_ _3"> </span></span>repos<span class="_ _2"></span>itory,<span class="ff4">你可以简单的理解一个目</span></div><div class="t m0 x2 h4 y22 ff4 fs1 fc0 sc0 ls0 ws0">录,这个目录里面的所有文件都可以被<span class="_ _3"> </span><span class="ff3">Git<span class="_ _3"> </span></span>管理起来,每个文件的修<span class="_ _2"></span>改,删除,</div><div class="t m0 x2 h4 y23 ff3 fs1 fc0 sc0 ls0 ws0">Git<span class="_ _0"> </span><span class="ff4">都能跟踪,以便任何<span class="_ _6"></span>时刻都可以追<span class="_ _6"></span>踪历史,或者<span class="_ _6"></span>在将来某个时<span class="_ _6"></span>刻还可以将文<span class="_ _6"></span>件”</span></div><div class="t m0 x2 h4 y24 ff4 fs1 fc0 sc0 ls0 ws0">还原”。<span class="ff3"> </span></div><div class="t m0 x2 h4 y25 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff4">所以创建一个版本库也非常简单,如下我<span class="_ _2"></span>是<span class="_ _3"> </span><span class="ff3">D<span class="_ _3"> </span></span>盘<span class="ff3"> </span>–<span class="ff3">> www<span class="_ _1"> </span></span>下<span class="ff3"> </span>目录下新建一个</span></div><div class="t m0 x2 h4 y26 ff3 fs1 fc0 sc0 ls0 ws0">testgit<span class="_ _3"> </span><span class="ff4">版本库。</span> </div><div class="t m0 x2 h3 y27 ff3 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x5 h3 y28 ff3 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x2 h4 y29 ff3 fs1 fc0 sc0 ls0 ws0">pwd <span class="ff4">命令是用于显示当前的目录。<span class="_ _2"></span><span class="ff3"> </span></span></div><div class="t m0 x2 h4 y2a ff3 fs1 fc0 sc0 ls0 ws0"> 1. <span class="ff4">通过命令</span> g<span class="_ _2"></span>it init <span class="ff4">把这个目录变成<span class="_ _1"> </span></span>git<span class="_ _3"> </span><span class="ff4">可以管理的仓库,如下:</span> </div><div class="t m0 x6 h3 y2b ff3 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x2 h4 y2c ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff4">这时候你当前<span class="_ _3"> </span></span>testgit<span class="_ _3"> </span><span class="ff4">目录下会多了一个</span>.git<span class="_ _3"> </span><span class="ff4">的目录,这个目录是<span class="_ _1"> </span></span>Git<span class="_ _3"> </span><span class="ff4">来跟踪管</span></div><div class="t m0 x2 h4 y2d ff4 fs1 fc0 sc0 ls0 ws0">理版本的,没事千万不要手动乱改这个目录<span class="_ _2"></span>里面的文件,否则,会<span class="_ _2"></span>把<span class="_ _3"> </span><span class="ff3">git<span class="_ _1"> </span></span>仓库给破</div><div class="t m0 x2 h4 y2e ff4 fs1 fc0 sc0 ls0 ws0">坏了。如下:<span class="ff3"> </span></div></div><div class="pi" data-data='{"ctm":[1.611792,0.000000,0.000000,1.611792,0.000000,0.000000]}'></div></div>
<div id="pf4" class="pf w0 h0" data-page-no="4"><div class="pc pc4 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6267723a4f8811599eeaa5ab/bg4.jpg"><div class="t m0 x2 h3 y18 ff3 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x7 h3 y2f ff3 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x2 h4 y30 ff3 fs1 fc0 sc0 ls0 ws0"> 2. <span class="ff4">把文件添加到版本库中。<span class="_ _2"></span><span class="ff3"> </span></span></div><div class="t m0 x2 h4 y31 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff4">首先要明确下,<span class="_ _2"></span>所有的版本控制系统,只能跟踪文本文件的<span class="_ _2"></span>改动,比如<span class="_ _3"> </span><span class="ff3">txt</span></span></div><div class="t m0 x2 h4 y32 ff4 fs1 fc0 sc0 ls0 ws0">文件,网页,所有程序的代码等,<span class="ff3">G<span class="_ _2"></span>it<span class="_ _3"> </span><span class="ff4">也不列外,版本控制系统可以告诉你每次的</span></span></div><div class="t m0 x2 h4 y33 ff4 fs1 fc0 sc0 ls0 ws0">改动,但是图片,视频这些二进制文件,虽<span class="_ _2"></span>能也能由版本控制系统<span class="_ _2"></span>管理,但没法跟</div><div class="t m0 x2 h4 y34 ff4 fs1 fc0 sc0 ls0 ws0">踪文件的变化,只能把二进制文件每次改动<span class="_ _2"></span>串起来,也就是知道图<span class="_ _2"></span>片从<span class="_ _3"> </span><span class="ff3 ls2">1kb<span class="_ _1"> </span></span>变成</div><div class="t m0 x2 h4 y35 ff3 fs1 fc0 sc0 ls2 ws0">2kb<span class="ff4 ls0">,但是到底改了啥,版本控制也不知道。<span class="_ _2"></span><span class="ff3"> </span></span></div><div class="t m0 x2 h5 y36 ff1 fs1 fc0 sc0 ls0 ws0"> <span class="ff2">下面先看下<span class="_ _3"> </span></span>demo<span class="_ _1"> </span><span class="ff2">如下演示:<span class="ff3"> </span></span></div><div class="t m0 x2 h4 y37 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff4">我在版本库<span class="_ _3"> </span></span>testgit<span class="_ _3"> </span><span class="ff4">目录下新建一个记事本文件</span> readme.txt <span class="ff4">内容如下:</span></div><div class="t m0 x2 h3 y38 ff3 fs1 fc0 sc0 ls0 ws0">11111111 </div><div class="t m0 x2 h4 y39 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff4">第一步:使用命令</span> git ad<span class="_ _2"></span>d readme.txt<span class="_ _3"> </span><span class="ff4">添加到暂存区里面去。如下:</span> </div><div class="t m0 x2 h3 y3a ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_ _7"> </span> </div><div class="t m0 x2 h4 y3b ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff4">如果和上面一样,没有任何提示,说明已<span class="_ _2"></span>经添加成功了。<span class="ff3"> </span></span></div><div class="t m0 x2 h4 y3c ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff4">第二步:用命令</span> g<span class="_ _2"></span>it commit<span class="_ _1"> </span><span class="ff4 ls3">告诉<span class="_ _1"> </span></span>Git<span class="ff4">,把文件提交到仓库。</span> </div><div class="t m0 x2 h3 y3d ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_ _8"> </span> </div></div><div class="pi" data-data='{"ctm":[1.611792,0.000000,0.000000,1.611792,0.000000,0.000000]}'></div></div>
<div id="pf5" class="pf w0 h0" data-page-no="5"><div class="pc pc5 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://static.pudn.com/prod/directory_preview_static/6267723a4f8811599eeaa5ab/bg5.jpg"><div class="t m0 x2 h4 y18 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff4">现在我们已经提交了一个<span class="_ _3"> </span></span>readme.txt<span class="_ _3"> </span><span class="ff4">文件了,我们下面可以通过命令<span class="_ _3"> </span></span>git status</div><div class="t m0 x2 h4 y22 ff4 fs1 fc0 sc0 ls0 ws0">来查看是否还有文件未提交,如下:<span class="_ _2"></span><span class="ff3"> </span></div><div class="t m0 x2 h3 y3e ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_ _9"> </span> </div><div class="t m0 x2 h4 y3f ff3 fs1 fc0 sc0 ls0 ws0"> <span class="ff4">说明没有任何文件未提交,但是我现在继续<span class="_ _2"></span>来改下<span class="_ _3"> </span><span class="ff3">readme.txt<span class="_ _3"> </span></span>内容,比如我在下</span></div><div class="t m0 x2 h4 y40 ff4 fs1 fc0 sc0 ls0 ws0">面添加一行<span class="_ _3"> </span><span class="ff3 ls2">222222222<span class="_ _6"></span>2<span class="_ _3"> </span></span>内容,继续使用<span class="_ _1"> </span><span class="ff3">git status<span class="_ _3"> </span></span>来查看下结果,如下:<span class="ff3"> </span></div><div class="t m0 x2 h3 y41 ff3 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x8 h3 y42 ff3 fs1 fc0 sc0 ls0 ws0"> </div><div class="t m0 x2 h4 y43 ff4 fs1 fc0 sc0 ls0 ws0">上面的命令告诉我们<span class="ff3"> readme<span class="_ _2"></span>.txt<span class="_ _1"> </span><span class="ff4">文件已被修改,但是未被提交的修改<span class="_ _2"></span>。<span class="ff3"> </span></span></span></div><div class="t m0 x2 h4 y44 ff4 fs1 fc0 sc0 ls0 ws0">接下来我想看下<span class="_ _3"> </span><span class="ff3">readme.txt<span class="_ _3"> </span></span>文件到底改了什么内容,如何查看呢?可以使用如下</div><div class="t m0 x2 h4 y45 ff4 fs1 fc0 sc0 ls0 ws0">命令:<span class="ff3"> </span></div><div class="t m0 x2 h4 y46 ff3 fs1 fc0 sc0 ls0 ws0">git diff readme<span class="_ _2"></span>.txt <span class="ff4">如下:</span> </div><div class="t m0 x2 h3 y47 ff3 fs1 fc0 sc0 ls0 ws0"> <span class="_ _a"> </span> </div></div><div class="pi" data-data='{"ctm":[1.611792,0.000000,0.000000,1.611792,0.000000,0.000000]}'></div></div>