git的使用

<h2 id="t11.版本控制">1.版本控制</h2>
<h3 id="t21.1 备份文件">1.1 备份文件</h3>
<ul>
<li>类似于网盘备份</li>
<li>我们的代码也需要备份。修改完了以后提交给版本库进行保管,哪一天代码没了也可以找回来。</li>
</ul>
<h3 id="t31.2 记录历史">1.2 记录历史</h3>
<ul>
<li>比如我们打游戏就要<code>存档</code>,万一挂了还可以从上个存档的地方重玩。</li>
<li>和网盘不同,网盘保留的是最新的状态,<code>历史的记录</code>都没有了,修改的记录也都找不回来了</li>
<li>网盘无法知道文件里的某行<code>代码</code>是何人在哪个时间添加进去的</li>
</ul>
<h3 id="t41.3 回到过去">1.3 回到过去</h3>
<ul>
<li>如果我有一天不小心删除了某个文件,我们可以通过历史备份找回来</li>
</ul>
<h3 id="t51.4 多端共享">1.4 多端共享</h3>
<ul>
<li>Git仓库可以通过PC端、Android、IOS<code>移动端</code>等各个终端访问</li>
<li>可以<code>随时随地</code>修改代码,公司没干完的工作回家接着干</li>
</ul>
<h3 id="t61.5 团队协作">1.5 团队协作</h3>
<ul>
<li>多个人或团队<code>合作</code>编写一个项目</li>
<li>合并代码处理<code>冲突</code></li>
</ul>
<h2 id="t72.什么是git">2.什么是git</h2>
<ul>
<li>为了告别手动方式管理Linux代码,并且符合开源和免费,Linus花了<code>两周时间</code>自己用 C 写了一个分布式版本控制系统,这就是Git</li>
<li>Git迅速成为最流行的分布式版本控制系统,尤其是 2008 年 GitHub 网站上线了,它为开源项目 免费提供Git存储 ,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。</li>
</ul>
<h2 id="t83.git的安装">3.git的安装</h2>
<h3 id="t93.1 windows下安装">3.1 windows下安装</h3>
下载地址 <a href="http://git-scm.com/">http://git-scm.com</a>
<h3 id="t103.2 mac下安装">3.2 mac下安装</h3>
如果你正在使用Mac做开发,有两种安装Git的方法。

一是安装homebrew,然后通过homebrew安装Git,具体方法请参考homebrew的文档:<a href="http://brew.sh/" target="_blank">http://brew.sh/</a>。

第二种方法更简单,也是推荐的方法,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你需要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“Command Line Tools”,点“Install”就可以完成安装了。

0

<h2 id="t114. 配置git用户和邮箱">4. 配置git用户和邮箱</h2>
<pre><code class="lang-javascript">$ git config --global user.name <span class="hljs-string">"你的github用户名"</span>
$ git config --global user.email <span class="hljs-string">"你的github邮箱"</span>
</code></pre>
<blockquote>不配置用户名和邮箱的话无法提交,因为git不知道你是谁</blockquote>
查看配置
<pre><code class="lang-javascript">$ git config --global user.name
$ git config --global user.email
</code></pre>
查看所有配置
<pre><code class="lang-javascript">$ git config --list

</code></pre>
<h2 id="t125.初始化git">5.初始化git</h2>
<ul>
<li>先创建一个空目录 ,然后进入此目录</li>
<li>点击右键选择Git-Bash打开命令行</li>
<li>输入git init命令把这个目录变成Git可以管理的仓库</li>
</ul>
<pre><code class="lang-javascript">$ git init
</code></pre>
<blockquote>通过ls -al命令查看所有文件</blockquote>
<h2 id="t136.git中的三个区">6.git中的三个区</h2>
工作流
http://suo.im/q5zbt
<ul>
<li>工作区通过git add 添加到暂存区
<pre><code class="lang-javascript"> $ git add <span class="hljs-string">'文件名'</span>
</code></pre>
</li>
<li>暂存区
特点:<code>过渡</code>的作用,避免<code>误操作</code>,<code>保护</code>工作区和历史区,分支处理;通过git commit 添加到历史区
<pre><code class="lang-javascript"> $ git commit -m<span class="hljs-string">"注释内容"</span>
</code></pre>
</li>
<li>历史区查看历史状态
<pre><code class="lang-javascript"> $ git log
</code></pre>
<blockquote>修改时通过git status查看当前状态</blockquote>
<h2 id="t147.git diff">7.git diff</h2>
不同区的代码比较
<h3 id="t157.1 工作区和暂存区">7.1 工作区和暂存区</h3>
<pre><code class="lang-javascript">$ git diff
</code></pre>
<h3 id="t167.2 暂存区和历史区">7.2 暂存区和历史区</h3>
<pre><code class="lang-javascript">$ git diff --cached(--staged)
</code></pre>
<h3 id="t177.3 工作区和版本库">7.3 工作区和版本库</h3>
<pre><code class="lang-javascript">$ git diff master
</code></pre>
<h2 id="t188. 撤销">8. 撤销</h2>
<h3 id="t198.1 撤销回git add的内容">8.1 撤销回git add的内容</h3>
<pre><code class="lang-javascript">git reset Head <span class="hljs-string">"文件名"</span>
</code></pre>
<h3 id="t208.2 撤回文件">8.2 撤回文件</h3>
<ul>
<li>先从缓存区撤销,缓存区无内容,从历史区域撤销
<pre><code class="lang-javascript">$ git checkout <span class="hljs-string">"文件名"</span>
</code></pre>
</li>
</ul>
<blockquote>有的时候我们希望提交时合并到上一次的提交 git commit --amend</blockquote>
<h2 id="t219.删除">9.删除</h2>
<h2 id="t229.1 删除暂存区和工作区">9.1 删除暂存区和工作区</h2>
删除暂存区中的内容,并且保证工作区中的内容已经不存在
<pre><code class="lang-javascript">$ git rm <span class="hljs-string">"文件名"</span>
</code></pre>
<blockquote>若本地文件存在则不能删除,需要通过-f参数删除</blockquote>
<h2 id="t239.2 仅删除缓存区">9.2 仅删除缓存区</h2>
<pre><code class="lang-javascript">$ git rm --cached <span class="hljs-string">"文件名"</span>
</code></pre>
<h2 id="t2410. 恢复">10. 恢复</h2>
<h3 id="t2510.1 恢复某个版本文件">10.1 恢复某个版本文件</h3>
<pre><code class="lang-javascript">$ git checkout commit_id filename 某个文件
</code></pre>
<h3 id="t2610.2 通过版本id恢复">10.2 通过版本id恢复</h3>
<pre><code class="lang-javascript">$ git reset --hard commit_id
</code></pre>
<h3 id="t2710.3 恢复未来">10.3 恢复未来</h3>
查看当时回滚时的版本
<pre><code class="lang-javascript">$ git reflog
</code></pre>
<h3 id="t2810.4 快速版本回退">10.4 快速版本回退</h3>
<pre><code class="lang-javascript">$ git reset --hard HEAD^
$ git reset --hard HEAD~<span class="hljs-number">3</span>
</code></pre>
<h2 id="t2911. 同步远程仓库">11. 同步远程仓库</h2>
<h3 id="t3011.1 gitHub">11.1 gitHub</h3>
<ul>
<li>注册账号</li>
<li>新建项目</li>
</ul>
<h3 id="t3111.2 添加远程仓库">11.2 添加远程仓库</h3>
<pre><code class="lang-javascript">$ git remote add origin <span class="hljs-string">"地址"</span>
</code></pre>
<h3 id="t3211.3 添加忽略文件">11.3 添加忽略文件</h3>
<pre><code class="lang-javascript">$ touch .gitignore
$ echo .DS_Store
$ echo node_modules
$ echo .idea
</code></pre>
<h3 id="t3311.4 推送代码">11.4 推送代码</h3>
<pre><code class="lang-javascript">$ git push origin master
</code></pre>
<h3 id="t3411.5 查看">11.5 查看</h3>
<pre><code class="lang-javascript">$ git remote 查看名字
$ git remote -v 查看地址
</code></pre>
<h2 id="t3512.代码的合并">12.代码的合并</h2>
<h3 id="t3612.1 git fetch">12.1 git fetch</h3>
<pre><code class="lang-javascript">$ git fetch
</code></pre>
拉取过来手动合并
<pre><code class="lang-javascript">$ git diff master origin/master
$ git merge origin/master
</code></pre>
<h3 id="t3712.2 git pull">12.2 git pull</h3>
拉取并合并
<pre><code class="lang-javascript">git pull
</code></pre>
<h3 id="t3813. 分支">13. 分支</h3>
<pre><code class="lang-javascript">git branch
git branch 创建分支
git checkout a
git checkout -b c切换分支
在master git merge
git checkout b
git branch --merged 合并了哪些分支
git branch --no-merged 合并了哪些分支
git branch -d a 删除分支
git branch -D a 删除分支
</code></pre>
<h3 id="t3914. tag版本">14. tag版本</h3>
<pre><code class="lang-javascript">git tag v1<span class="hljs-number">.0</span>
</code></pre>
<h3 id="t4015. 作业提交流程">15. 作业提交流程</h3>
<h3 id="t4115.1 第一次交作业流程(组长)">15.1 第一次交作业流程(组长)</h3>
<ul>
<li><code>fork</code>珠峰培训讲师的作业仓库</li>
<li>把自己的仓库<code>下载</code>到本地</li>
<li>把自己的作业 <code>上传</code>到自己的github仓库</li>
<li>发<code>pull request</code>给讲师</li>
<li>添加组员账号</li>
</ul>
<h3 id="t4215.2 第二次交作业流程(组员)">15.2 第二次交作业流程(组员)</h3>
<ul>
<li>克隆组长项目</li>
<li>先<code>拉取</code>组长仓库最新代码</li>
<li>将自己的作业(放入对应的文件夹)</li>
<li>git add/git commit</li>
<li>再push前拉取组长仓库最新代码</li>
<li>push到组长仓库</li>
</ul>
<h3 id="t4315.3 第二次交作业流程(组长)">15.3 第二次交作业流程(组长)</h3>
<ul>
<li>在本地<code>增加</code>讲师仓库</li>
<li><code>拉取</code>自己的最新代码</li>
<li><code>拉取</code>老师的最新的代码,如果冲突需要解决冲突</li>
<li>把自己的作业 拷贝进去(如果组长没有要提交的东西可省略)</li>
<li>把自己的作业上<code>传到</code>自己的github仓库(如果组长没有要提交的东西可省略)</li>
<li>发<code>pull request</code>给讲师</li>
</ul>
<pre></pre>
 </li>
</ul>

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,293评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,604评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,958评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,729评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,719评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,630评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,000评论 3 397
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,665评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,909评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,646评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,726评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,400评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,986评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,959评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,996评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,481评论 2 342

推荐阅读更多精彩内容

  • 1.设置 初次使用需要设置姓名和邮箱git config --global user.name "git用户名"g...
    jrg陈咪咪sunny阅读 752评论 0 1
  • Git和Github学习 1.创建版本库 安装git,至于这个话题就不细说了,按照你电脑的操作系统下载一个合适的g...
    郭子web阅读 366评论 0 0
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,648评论 4 54
  • 侄子快开学了,学校要求父母给孩子写一封信,鉴于近水楼台的原因,我就成为了代笔的人,“家里不是有个现成的大...
    七月生吾阅读 227评论 0 0
  • 婚姻不仅仅是两个个体得结合,还是两个家族得结盟,所以这是一件重要、审慎的事情。 我有一个朋友,他很固执、很叛逆,经...
    linx1991阅读 11,845评论 1 2