Linux系统下Git的基本配置和使用示例

  git config配置文件

  一.Git已经在你的系统中了,你会做一些事情来客户化你的Git环境。你只需要做这些设置一次;即使你升级了,他们也会绑定到你的环境中。你也可以在任何时刻通过运行命令来重新更改这些设置。

  Git有一个工具被称为git config,它允许你获得和设置配置变量;这些变量可以控制Git的外观和操作的各个方面。这些变量可以被存储在三个不同的位置:

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

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

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

  在Windows系统中,Git在$HOME目录中查找.gitconfig文件(对大多数人来说,位于C:Documents and Settings$USER下)。它也会查找/etc/gitconfig,尽管它是相对于Msys 根目录的。这可能是你在Windows中运行安装程序时决定安装Git的任何地方。

  二.你的标识(Your Identity)

  2.1 当你安装Git后首先要做的事情是设置你的用户名称和e-mail地址。这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中:

  代码如下:

  $ git config --global user.name "John Doe"

  $ git config --global user.email johndoe@example.com

  重申一遍,你只需要做一次这个设置。如果你传递了 --global 选项,因为Git将总是会使用该信息来处理你在系统中所做的一切操作。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要--global选项。

  2.2 你的编辑器(Your Editor)

  现在,你的标识已经设置,你可以配置你的缺省文本编辑器,Git在需要你输入一些消息时会使用该文本编辑器。缺省情况下,Git使用你的系统的缺省编辑器,这通常可能是vi 或者 vim。如果你想使用一个不同的文本编辑器,例如Emacs,你可以做如下操作:

  代码如下:

  $ git config --global core.editor emacs

  2.3 你的比较工具(Your Diff Tool)

  另外一个你可能需要配置的有用的选项是缺省的比较工具它用来解决合并时的冲突。例如,你想使用vimdiff:

  代码如下:

  $ git config --global merge.tool vimdiff

  Git可以接受kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, 和 opendiff作为有效的合并工具。你也可以设置一个客户化的工具;查看第7章获得更多关于此的信息。

  2.4 检查你的设置(Checking Your Settings)

  如果你想检查你的设置,你可以使用 git config --list 命令来列出Git可以在该处找到的所有的设置:

  代码如下:

  $ git config --list

  user.name=Scott Chacon

  user.email=schacon@gmail.com

  color.status=auto

  color.branch=auto

  color.interactive=auto

  color.diff=auto

  ...

  你可能会看到一个关键字出现多次,这是因为Git从不同的文件中(例如:/etc/gitconfig以及~/.gitconfig)读取相同的关键字。 在这种情况下,对每个唯一的关键字,Git使用最后的那个值。

  你也可以查看Git认为的一个特定的关键字目前的值,使用如下命令 git config {key}:

  代码如下:

  $ git config user.name

  Scott Chacon

  2.5 获取帮助(Getting help)

  如果当你在使用Git时需要帮助,有三种方法可以获得任何git命令的手册页(manpage)帮助信息:

  代码如下:

  $ git help

  $ git --help

  $ man git-

  例如,你可以运行如下命令获取对config命令的手册页帮助:

  代码如下:

  $ git help config

  这些命令非常友好,因为你可以在任何地方存取他们,即使非在线状态。如果手册页和本书仍然不足而你需要个人的帮助,你可以试着使用Freenode IRCServer上的#git或#github 频道(irc.freenode.net)。这些频道会定期由数百个对Git非常熟悉的专业人士所维护,他们会非常乐意帮助你。

  2.6 总结(Summary)

  你应该对Git是什么以及Git与你可能使用的其它CVCS之间的不同有了一个基本的了解。你也应当在你的系统中有了一个具有你个人标识的可以工作的Git版本。是时候来学习一些Git的基本知识了。

  git 实际使用记录

  1、git 提交代码错误实例分析

  代码如下:

  $ git push origin master

  代码如下:

  To git@192.168.1.3:k6.git

  ! [rejected] master -> master (non-fast-forward)

  error: failed to push some refs to 'git@192.168.1.3:k6.git'

  To prevent you from losing history, non-fast-forward updates were rejected

  Merge the remote changes before pushing again. See the 'Note about

  fast-forwards' section of 'git push --help' for details.

  cbk@YCS:~/work/k6_130708/k6$ git fecth

  git: 'fecth' is not a git command. See 'git --help'.

  git push 错误,因为没有先pull最新的代码,需要以下操作:

  代码如下:

  $ git fetch origin

  $ git merge origin/master

  $ git push origin master

  如果安装git后没有设置你的用户名称和e-mail地址,还需要先执行:

  代码如下:

  $ git config --global user.name "cbk"

  $ git config --global user.email cbk@ylf.com

  这是非常重要的,因为每次Git提交都会使用该信息。它被永远的嵌入到了你的提交中:

  重申一遍,你只需要做一次这个设置。如果你传递了 --global 选项,因为Git将总是会使用该信息来处理你在系统中所做的一切操作。如果你希望在一个特定的项目中使用不同的名称或e-mail地址,你可以在该项目中运行该命令而不要--global选项。

  具体到此问题,如果没有设置你的用户名称和e-mail地址,则一直正确无法push代码。

  2、Git 跟踪一个文件的提交历史记录

  在跟踪Android代码是,有时候发现某个关键文件被改动了,需要跟踪查看对这个关键文件的所有commit的记录,以便理解其中的修改原因和过程:

  代码如下:

  git log -p “file name”

  显示这个文件的每一行的最后提交commit,方便定位commit:

  代码如下:

  git blame “file name"

  显示log详细修改记录:

  git show [log_id_num],例如:

  代码如下:

  git show 75704c8543b033619a80439ddb0fd69cc7cb172c

  3、git初始化之git config

  1). 下面的命令将修改/home/[username]/.gitconfig文件,也就是说下面的配置只对每一个ssh的用户可见,所以每个人都需要做。

  提交代码的log里面会显示提交者的信息

  代码如下:

  git config --global user.name [username]

  git config --global user.email [email]

  在git命令中开启颜色显示

  代码如下:

  git config --global color.ui true

  2). 下面的命令将修改/etc/gitconfig文件,这是全局配置,所以admin来做一次就可以了。

  配置一些git的常用命令alias

  代码如下:

  sudo git config --system alias.st status #git st

  sudo git config --system alias.ci commit #git commit

  sudo git config --system alias.co checkout #git co

  sudo git config --system alias.br branch #git branch

  3). 也可以进入工作根目录,运行git config -e,这样就只会修改工作区的.git/config文件,但是暂时还用不着.

  git config文件的override顺序是3)>1)>2).

  4.版本回退

  代码如下:

  git reset --hard commit_id

  代码如下:

  git checkout commit_id

  代码如下:

  git clean –df commit_id

(0)

相关推荐

  • linux系统下Centos中"vim配置"到底有多强大

    下面小编主要为大家讲解vim编辑器的配置问题,解决在使用的时候遇到的一系列难题. 1.简单的页面设置(附有效果图) 首先,使用cd /etc命令进入etc的目录下,然后输入vim vimrc 进入vi ...

  • Linux系统下Telnet的设置方法

    Linux系统下Telnet的设置方法 Linux系统下Telnet服务的配置步骤: 一、安装Telnet软件包(通常要两个) 1、 Telnet-clIEnt (或 Telnet),这个软件包提供的 ...

  • Linux系统下使用mail发送Internet邮件的配置方法

    用惯了windows系统的用户可能一开始对linux系统掌握不好,很多功能可能用起来不是很习惯。本文就介绍了linux系统的一个小应用:在Linux系统下使用mail发送Internet邮件。不过在介 ...

  • 如何在LINUX系统下修改debian wheezy默认配置的方法

    debian wheezy修改默认配置 环境:Thinkpad T420s + Debian Wheezy 1,thinkpad禁用触摸板(反正我是一直不习惯用触摸板)在 /etc/profile 配 ...

  • Linux系统下配置HTTP负载均衡系统以扛流量增加

    随着网络流量的增加,服务器开始面临繁重负载,这时就需要搭配一套HTTP负载均衡系统了,那么Linux下该如何配置HTTP负载均衡系统呢?随小编一起来学习一下吧。 如今对基于互联网的应用和服务的要求越来 ...

  • Linux系统下NTP协议的超级配置攻略

    在Linux系统中,为了避免主机时间因为在长时间运行下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的.Linux系统下,一般使用ntp服务来同步不同机器的时间.NTP 是网 ...

  • Linux系统下动态DNS服务的详细配置教程

    Linux系统 是我们不常接触的系统,但他又有很多值得我们利用的功能,今天介绍一个在linux系统下配置动态DNS服务器 在网络管理中,对于DNS服务的管理是一项基础性的工作.随着用户规模的扩大,频繁 ...

  • Linux系统下使用ctags查找源码的方法

    太多的文件导致我们无法去定位一个函数的实现或者一个宏定义的位置。显然对于源码的阅读和个人的学习都是非常不利的。多么希望有一个软件能够输入命令就能够精确的定位函数的位置。是的,现在有这么一个工具:cta ...

  • Linux系统下禁止非WHEEL用户使用SU命命的两种实现方法

    通常情况下,一般用户通过执行“su -”命令、输入正确的root密码,可以登录为root用户来对系统进行管理员级别的配置。 但是,为了更进一步加强系统的安全性,有必要建立一个管理员的 组,只允许这个组 ...