By francis_hao    Nov 17,2016

本来是想把git的使用笔记写在一个文件里,但是越写越长,最后也不得不分开了。这样也好,每一篇一个侧重,可以写的详细一点。

 

初学乍练

在linux系统执行下面的命令,查看是否已经安装了git,若没有安装则需要到http://git-scm.com/download/ 上下载并安装。

$ git ––version
git version 1.8.3.1

git基本配置

配置的设置是一次性的工作,这些设置会在全局文件(用户主目录下的.gitconfig)或系统文件(如/etc/gitconfig)中做永久的记录。

设置当前用户的姓名和邮件地址。这些配置将在版本库提交的时候用到

$ git config --global user.name "francis"
$ git config --global user.email "francis_hao@126.com"

如果用户名和邮箱设置错了,可以进行修改

$ git commit --amend --author='Your Name <you@example.com>'

设置别名,可选择为所有用户使用和只给本用户使用

$ git config --MASK alias.st status

MASK为空,配置当前版本库的配置文件,优先级最高。(配置文件为.git/config)

MASK为global:仅供本用户使用。(配置文件为~/.gitconfig)

MASK为system:必须使用系统管理员权限,执行后对所有用户可见。(配置文件为/etc/gitconfig)

在git命令中开启颜色显示

$ git config --global color.ui true

在git中查看已经配置的信息

$ git config --list

 

初始化本地版本库

初始化一个指定的版本库。若目录已经初始化过,也不会有什么影响

$ git init demo

初始化当前目录为版本库

$ git init

初始化的过程实际上是在目录中新建一个.git目录(仅此一个,库的子文件夹没有),以存放相关的版本信息。

 

添加文件

编辑文件hello.c,先添加,之后提交。-m后是提交的说明,是强制性的,若没有写明则会自动打开一个编辑器。

$ git add hello.c
$ git commint -m "add file"

添加也可以直接添加目录下所有的文件

$ git add .

当你下次修改了文件再提交的时候,如果想add所有已经建立追踪的文件,可以执行命令

$ git add –u

有一种方式可以自动提交修改了得文件那就是commit的-a选项

$ git commit -a -m "commit every file that have modified"

但是这种方式并不建议使用,截取一段说明

 

删除文件

和添加文件类似,先删除,之后提交

$ git rm hello.c
$ git commint -m "delete file"

 

移动文件

和之前的操作类似,先移动,之后提交

$ git mv hello.c hello
$ git commint -m "move file"

 

初窥门径

上一部分我们的操作也没有看到什么提示,不知道是不是达到了想要的效果,这一部分就看看我们想看到的一些状态信息。

状态信息

在操作之后查看是否确实操作成功,以添加文件为例

$ git status

git初始化之后会有一个默认的分支,分支的名字叫做master。如果不新建分支,那么所有的提交操作都是在这个分支上进行的。

 

提交记录

我们的每次commit都会在当前分支(默认是master)留下一个记录。可以查看每个记录

$ git log

如果觉得信息太罗嗦,可以简化显示,只显示hash值和提交说明

$ git log --pretty=oneline
$ git log --oneline

git log主要用来看当前分支的commit的信息(加--all可以看多个分支),当我们想看最近操作记录(如果操作了多个分支,这个其实记录在HEAD上),就可以用git reflog来查看了,它会记录你的操作,包括clone、checkout等

$ git reflog

可以根据git log获得的哈希值查看版本库里的文件列表

或者使用HEAD获得最新的提交的文件列表

$ git ls-files --with-tree=HEAD

查看某次提交的详细信息,下例为查看c0fb572提交中文件hello.c的具体内容,若不写文件名则显示所有文件的提交信息。

$ git show --oneline c0fb572 hello.c

 

自立门户

了解了一些最基本的操作,接下来就可以根据git的help文件学习其他的命令了,以commit命令为例说明。

简短的说明可以用命令的-h选项

$ git commit -h

如果要查看详细的帮助文件:

$ git help commit

 

 

 


本文由 刘英皓 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆 许可协议进行许可。欢迎转载,请注明出处:
转载自:http://www.cnblogs.com/yinghao1991/p/6079134.html

 

参考

[1]蒋鑫.《git权威指南》北京:机械工业出版社,2011.6

[2]伯乐在线:http://blog.jobbole.com/78960/ git入门

[3]伯乐在线:http://blog.jobbole.com/87410/ git版本控制与工作流

[4]魔法学院:http://www.nowamagic.net/academy/detail/48160210 git思想和基本工作原理

[5]博客园: http://www.cnblogs.com/schaepher/p/5561193.html Git和Github简单教程

[6]CSDN:
http://blog.csdn.net/ithomer/article/details/7529022 git 常用命令详解

[7]易百:http://www.yiibai.com/git/ git教程

 

 

git使用笔记(一)入门的更多相关文章

  1. Git学习笔记与IntelliJ IDEA整合

    Git学习笔记与IntelliJ IDEA整合 一.Git学习笔记(基于Github) 1.安装和配置Git 下载地址:http://git-scm.com/downloads Git简要使用说明:h ...

  2. Git学习笔记(10)——搭建Git服务器

    本文主要记录了Git服务器的搭建,以及一些其他的配置,和最后的小总结. Git远程仓库服务器 其实远程仓库和本地仓库没啥不同,远程仓库只是每天24小时开机为大家服务,所以叫做服务器.我们完全可以把自己 ...

  3. Git学习笔记(四)

    一.忽略特殊文件 在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件. 不需要从头写.gitignore文件,GitHub已经为我们 ...

  4. git 学习笔记6--remote & log

    git 学习笔记6--remote & log 创建SSH Keys ssh-keygen -t rsa -C "1050244110@qq.com" 本地关联远程 git ...

  5. 《Pro Git》笔记3:分支基本操作

    <Pro Git>笔记3:Git分支基本操作 分支使多线开发和合并非常容易.Git的分支就是一个指向提交对象的可变指针,极其轻量.Git的默认分支为master. 1.Git数据存储结构和 ...

  6. python学习笔记--Django入门四 管理站点--二

    接上一节  python学习笔记--Django入门四 管理站点 设置字段可选 编辑Book模块在email字段上加上blank=True,指定email字段为可选,代码如下: class Autho ...

  7. git使用笔记(三)(图文说明) 图解提交更改内容的不同方式,涉及代码

    此步之前的工作和示例请参考以下帖子: git使用笔记(一)Git的下载与配置 git使用笔记(二) 如何把GitHub上项目同步到本地 -------------------------------- ...

  8. WebSocket学习笔记——无痛入门

    WebSocket学习笔记——无痛入门 标签: websocket 2014-04-09 22:05 4987人阅读 评论(1) 收藏 举报  分类: 物联网学习笔记(37)  版权声明:本文为博主原 ...

  9. Git学习笔记---协作的一般流程

    一般的操作流程 1.pull 王小坤与另一个同事张大炮一起开发一个项目,张大炮昨天修改了数据库读写的api,优化了执行速度,并把read()函数改名成了Read(),下午下班之前把这些代码push到服 ...

  10. 【转帖】Git学习笔记 记录一下

    本文内容参考了廖雪峰老师的博文,并做了适当整理,方便大家查阅. 原帖地址 https://wangfanggang.com/Git/git/ 常用命令 仓库初始化 - git init 1 git i ...

随机推荐

  1. centOS下更新yum源

    CentOS下更新yum源 1.使用如下命令,备份/etc/yum.repos.d/CentOS-Base.repo. cp /etc/yum.repos.d/CentOS-Base.repo /et ...

  2. python的爬虫代理设置

    现在网站大部分都是反爬虫技术,最简单就是加代理,写了一个代理小程序. # -*- coding: utf-8 -*- #__author__ = "雨轩恋i" #__date__ ...

  3. (数据科学学习手札33)基于Python的网络数据采集实战(1)

    一.简介 前面两篇文章我们围绕利用Python进行网络数据采集铺垫了很多内容,但光说不练是不行的,于是乎,本篇就将基于笔者最近的一项数据需求进行一次网络数据采集的实战: 二.网易财经股票数据爬虫实战 ...

  4. SAP ABAP Development Tools in Eclipseのセットアップ

    手順 1. Eclipse IDE インストール 以下からダウンロード.https://tools.hana.ondemand.com/#abap※2018/1月現在 Oxygen(4.7)詳細は割愛 ...

  5. python2.7练习小例子(二十)

        20):题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个.以后每天早上都吃了前一天剩下的一半零一个.到第10天早上 ...

  6. C#的特性Attribute

    一.什么是特性 特性是用于在运行时传递程序中各种元素(比如类.方法.结构.枚举.组件等)的行为信息的声明性标签,这个标签可以有多个.您可以通过使用特性向程序添加声明性信息.一个声明性标签是通过放置在它 ...

  7. 初步学习pg_control文件之五

    接前文 初步学习pg_control文件之四,继续看何时出现  DB_IN_CRASH_RECOVERY: 看下面代码就比较清楚了:如果对 InArchiveRecovery 判断值为假,而且 读取出 ...

  8. C++各种类型的简单排序大汇总~

    啊,排序的技能点也太多了吧!!!LITTLESUN快要**在排序的技能场了啊!(划掉)经历了两天48小时2880分钟172800秒的艰苦奋斗,终于终于终于学的差不多了!明天就可以去打排序的小怪喽!(撒 ...

  9. C# List集合去重操作注意点

    今天调试代码时发现list的distinct方法在对引用类型操作时并没有去重,后来查阅资料发现list去重操作对象集合时比较的是对象的一个个引用地址, 因为集合里的对象都是一个个单独的实例,所以并不会 ...

  10. ora-12154 TNS:"无法处理服务名"的一个解决方法

    http://www.cnblogs.com/xh3/archive/2007/04/21/722217.html 很怪异的一个问题,在网络环境下配置客户端,竟然怎么也连不上主机了,看了不少帖子,大多 ...