作为当下最流行的版本控制系统,Git是一个分布式版本控制系统,跟SVN等集中式版本控制有很多使用上的不同。万事开头难,想要最快学会使用Git,最简单的就是下了客户端就直接去用,一边用一边学。本文手把手教你从对Git一无所知,到简单使用。

  转载请注明出处http://www.cnblogs.com/zrtqsk/p/3762489.html,谢谢!  

一、安装

  这里假设你跟楼主一样使用Windows系统,首先当然是去下载一个Git客户端,Git在Windows下的客户端叫做msysgit,下载地址为code.google.com/p/msysgit/或http://msysgit.github.com/,下完直接安装就好了。

  git官网建议不要用windows命令行来直接使用git,而是建议使用安装包下的Git Bash这个快捷方式打开的git命令行。

二、使用前配置

  Git 提供了一个叫做 git config 的工具,专门用来配置Git,即用来操作Git配置文件。Git配置文件存在3个地方(对应不同作用范围):

1 . /etc/gitconfig 文件:包含了适用于系统所有用户和所有库的值。如果你传递参数选项’--system’ 给 git config,它将明确的读和写这个文件。

  (/指的是你Git的安装目录)

2 . ~/.gitconfig 文件 :具体到你的用户。你可以通过传递--global 选项使Git 读或写这个特定的文件。

  (~指的是你的用户目录,对应你电脑的用户名主目录,即C:\Users\Administrator,楼主的就是这样!)

3 . 位于git目录的config文件 (也就是 .git/config) :无论你当前在用的库是什么,特定指向该单一的库。每个级别重写前一个级别的值。因此,在.git/config中的值覆  盖了在/etc/gitconfig中的同一个值。

  (.git/config 指的是当前目录git下的配置文件)

  然后我们在就开始配置我们的信息。

  首先要配置我们的用户名和Email地址,用来验证你自己个人信息,配置很简单:

  打开git命令行,以下是楼主的输入:

  

  如上,用户名用引号括起,而邮箱不用。

  而查看配置则非常简单,输入git config --list就够了,看楼主的输入:

  

  怎么样,非常简单是吧。

三、取得项目的Git仓库

1、如果希望在将本机的某个目录新建为Git仓库,该怎么做呢?

  非常简单,首先我们要使用Git命令行,将当前目录移到我们所希望建为Git仓库的本机目录。实现这个操作,当然是用cd命令了。

  楼主是这么做的:

  然后就可以看到,命令行变成了这样:

  

  然后在当前目录下使用

我们希望当前目录下所有文件都纳入版本控制,那就只需要执行

2、如果我们希望从服务端已有的Git仓库复制到本地,该怎么做呢?

  非常简单,同样我们首先用cd命令将当前目录移到我们希望服务端项目复制到的地方,然后使用git clone 【url】

  (当然了,前提是你得先去注册一个远程服务器仓库)

  楼主是这样做的:

  

  然后,它需要楼主输入服务端用户名和密码,输入后,显示如图:

  

  结束后,服务端的文件都拷贝到本地了,同时服务端目录出现了一个.git的隐藏文件。

  

四、代码修改、上传

1、要确定哪些文件当前处于什么状态,可以用 git status 命令。如果在克隆仓库之后立即执行此命令,会看到类似这样的输出:

  

  表明当前目录文件从未被更改过。且当前分支是默认分支——master。

  我们现在修改某个文件,然后再使用git status命令,就可以看到如下的输出:

  

  即:分支master下,“Changes not staged for commit”说明已跟踪文件的内容发生了变化,但还没有放到暂存区。

2、要暂存这次更新,需要运行 git add 命令,我们暂存所有文件,再使用git status查看状态,如下:

  

  文件为暂存状态。(这个后文会讲)

 

3、提交更新使用git commit命令

  输入

 

  这是我们提交更新时,自动启动了文本编辑器Vim以便输入本次提交的说明,即注释.

  如图左上角有一个白色光标跳动的时候,文本输入器是属于命令状态。我们输入 i 就可以发现左上角的光标变成了短下划线的输入状态了。

  这时可以随意输入、修改内容,也可以不输入。

  若想退出编辑器,按键盘”Esc“即可进入命令状态,然后输入 :,再输入 x ,就可以退出编辑器了。

  另外,也可以用 -m 参数后跟提交说明的方式,在一行命令中提交更新,如:

  

  注意,每一次提交都只是对你项目作一次快照,以后可以回到这个状态,或者进行比较。提交并不是上传代码到服务器仓库。

4、更新到服务器使用git push,然后输入用户名和密码就可以了,如作者操作:

  

5、查看提交历史用git log命令。

  直接输入git log 会显示如下:

  

  我们可以看到各个提交记录,包括用户名、时间、注释等。

  OK,至此我们已经简单的使用了Git了,如果需要进行复杂操作,可参照Git操作文档。

参考Git官方说明:http://git-scm.com/book/zh

傻瓜看完都可以简单使用Git的更多相关文章

  1. 看完就会用的GIT操作图解分析

    无论你是前端还是后台,无论是运维还是移动端研发,GIT是逃避不了的东西,当然你说你要用SVN,那不在这次的讨论范围之内.不多说,请看下文GIT图解分析,10分钟学会git操作,当然下面的教程是为实战为 ...

  2. 【Nginx】如何格式化日志并推送到远程服务器?看完原来很简单!!

    写在前面 Nginx作为最常用的反向代理和负载均衡服务器,被广泛的应用在众多互联网项目的前置服务中,很多互联网项目直接将Nginx服务器作为整个项目的流量入口.这就使得我们可以通过对Nginx服务器日 ...

  3. HashMap? ConcurrentHashMap? 相信看完这篇没人能难住你!

    前言 Map 这样的 Key Value 在软件开发中是非常经典的结构,常用于在内存中存放数据. 本篇主要想讨论 ConcurrentHashMap 这样一个并发容器,在正式开始之前我觉得有必要谈谈 ...

  4. 看完SQL Server 2014 Q/A答疑集锦:想不升级都难!

    看完SQL Server 2014 Q/A答疑集锦:想不升级都难! 转载自:http://mp.weixin.qq.com/s/5rZCgnMKmJqeC7hbe4CZ_g 本期嘉宾为微软技术中心技术 ...

  5. 在知乎上看到 Web Socket这篇文章讲得确实挺好,从头看到尾都非常形象生动,一口气看完,没有半点模糊,非常不错

    在知乎上看到这篇文章讲得确实挺好,从头看到尾都非常形象生动,一口气看完,没有半点模糊,非常不错,所以推荐给大家,非常值得一读. 作者:Ovear链接:https://www.zhihu.com/que ...

  6. 看完这篇文章,我奶奶都懂了https的原理

    本文在个人技术博客同步发布,详情可猛戳 亦可扫描屏幕右方二维码关注个人公众号 Http存在的问题   上过网的朋友都知道,网络是非常不安全的.尤其是公共场所很多免费的wifi,或许只是攻击者的一个诱饵 ...

  7. [转帖]看完这篇文章,我奶奶都懂了https的原理

    看完这篇文章,我奶奶都懂了https的原理 http://www.17coding.info/article/22 非对称算法 以及 CA证书 公钥 核心是 大的质数不一分解 还有 就是 椭圆曲线算法 ...

  8. 看完此文,妈妈还会担心你docker入不了门?

    本文在个人技术博客不同步发布,详情可猛戳 亦可扫描屏幕右侧二维码关注个人公众号,公众号内有个人联系方式,等你来撩...   上周对象突然心血来潮说想养个小宠物,我问想养啥她又说随便,你看着办!!!这我 ...

  9. git原理学习记录:从基本指令到背后原理,实现一个简单的git

    一开始我还担心 git 的原理会不会很难懂,但在阅读了官方文档后我发现其实并不难懂,似乎可以动手实现一个简单的 git,于是就有了下面这篇学习记录. 本文的叙述思路参照了官方文档Book的原理介绍部分 ...

随机推荐

  1. 安装php扩展

    下面我以soap安装为例子 cd /home/zhangy/php-5.2.6/ext/soap /usr/local/php/bin/phpize#确定php-config文件在不在,调用php-c ...

  2. ORA-12154 & TNS-03505 案例分享

    下面介绍一个工作中遇到的案例场景,应用服务器连接数据库出现"ORA-12154: TNS: 无法解析指定的连接标识符".一般情况下ORA-12541错误是很容易排除的,但是这次遇到 ...

  3. 编译hadoop2.6.0

    具体情况比较曲折:hadoop2.6.0编译不过 错误如下: 这个kms模块始终编译不过,最后得出结论国内的aliyun maven仓库有问题, 在编译hadoop2.2.0 可以通过,因为这个版本的 ...

  4. 十五天精通WCF——第十二天 说说wcf中的那几种序列化

    我们都知道wcf是由信道栈组成的,在我们传输的参数走到传输信道层之前,先需要经过序列化的过程,也就是将参数序列化为message,这篇 我们就来说说这里的序列化,蛮有意思的,可能初学者也明白,在wcf ...

  5. iOS 懒加载不起作用的原因

    在.m类中定义了一共strong属性,用懒加载getter方式去处理,发现用的时候无论如何属性都是null,调试后,发现根本没进getter方法. (ps:懒加载,又称为延迟加载.说的通俗一点,就是在 ...

  6. LINUX运维实战案例之文件已删除但空间不释放问题的分析与解决办法

    1.错误现象 运维的监控系统发来通知,报告一台服务器空间满了,登陆服务器查看,根分区确实没有空间了,如下图所示: 这里首先说明一下服务器的一些删除策略,由于Linux没有回收站功能,我们的线上服务器所 ...

  7. python enumerate函数用法

    enumerate函数用于遍历序列中的元素以及它们的下标 i = 0 seq = ['one', 'two', 'three'] for element in seq: print i, seq[i] ...

  8. svn使用--all-static编译,移植到其它系统上可能使setlocale等GLIBC相关库函数调用失败

    svn: Can't convert string from 'UTF-8' to native encoding

  9. Struts2文件上传,以及各种注意事项

    首先肯定是要配置好struts2环境,这个在另一篇<struts2环境搭建,以及一个简单实例>里已经讲过了 首先是网页部分,upload_file.jsp <%@ page lang ...

  10. linux线程同步(2)-条件变量

    一.概述                                                    上一篇,介绍了互斥量.条件变量与互斥量不同,互斥量是防止多线程同时访问共享的互斥变量来保 ...