Git – 合并冲突时,撤销合并

执行合并操作时,遇到冲突,暂时又不想解决冲突,可以通过以下命令撤销合并:

最新版本时:

git merge --abort

版本早于 1.7.4 时:

git reset --merge

版本早于 1.6.2 时:

git reset --hard

注:git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.

参考链接

Git 标签

标签是什么?

标签通常用于标记历史上一些重要的时刻,通常用于记录发布新版本。

列出所有的标签

git tag

列出匹配模式的标签

使用 Shell 通配符模式

git tag -l 'v1.*'

标签的2种类型与创建

  • 轻量级标签(lightweight)
  • 含注解标签(annotated)推荐

创建轻量级标签

git tag v1.2

创建含注解标签

git tag -a v1.3 -m "commit message"

查看标签详情

git show v1.3

创建指向提交的标签

有时忘记打标签了,不要怕,还有补救的方法。

git tag -a v1.3.1 <commit>

推送标签至远程仓库

推送单个标签

git push origin v1.3.1

推送全部标签

git push origin --tags

删除本地标签

git tag -d v1.3.1

删除远程标签

git push origin --delete tag v1.3.1
git push origin :refs/tags/v1.3.1

重命名标签

将 old 标签重命名为 new

git tag new old 
git tag -d old 
git push origin :refs/tags/old 
git push --tags

参考

配置Git

此前曾写过一篇介绍Git安装的文章,今天来写点Git配置那些事儿——git config

因为Git是分布式的版本控制工具,没有一个中心仓库向你询问用户名和密码,在你向本地仓库提交的时候,也需要这些信息,可以通过git config进行配置,如下:

git config user.name hutushen222

上面的命令将配置数据存储到当前项目的.git/config文件中,不过可以使用“–global”、“–system”、“–file”来修改存储的位置,具体如下:

  • “git config –system …”,系统配置,存储在/etc/gitconfig文件中,对所有用户的项目起作用;
  • “git config –global …”,全局配置,存储在当前用户的~/.gitconfig文件中,对当前用户的所有项目起作用;
  • “git config …”,项目配置,存储在当前项目的.git/config文件中,只对当前项目起作用。

项目级别配置可以覆盖全局/系统级别的配置,全局级别的配置可以覆盖系统级别的配置。

常用配置

Git的配置选项很多,有100多个,我常使用的也就那么几个,因为是每个项目都要用到的,所以都使用“–global”进行全局配置。

user.name

设置提交时使用的用户名 。

git config --global user.name "Jack Jordan"

user.email

设置提交是使用的邮箱。

git config --global user.email example@gmail.com

core.ui

设置该选项的值为auto或always后,命令行git将使用不同的颜色展示不同类型的内容,比如已经未添加到暂存区的文件显示为红色,等待提交的文件显示为绿色;git diff查看差异时,移除的行显示为红死,添加的行显示为绿色。

git config --global color.ui auto

alias.*

设置git命令的别名。我此前使用的是SVN,习惯了那些简短的命令,不过通过设置,Git也可以使用同样的命令。

git config --global alias.co checkout
git config --global alias.st status
git config --global alias.ci commit

core.editor

设置提交时使用的编辑器。

git config --global core.editor vim

merge.tool

合并差异时使用的工具。

git config --global merge.tool meld

Ubuntu下安装Git以及Git帮助手册

Git简介

Git是一个分布式版本控制系统,对应的是SVN、CVS这样的集中式版本控制系统。

虽然知晓并安装Git是很久以前的事情了,但是我却没怎么用过,一直使用的是SVN。在《Pro Git》中看到的Git的好处有:

  • 本地完整地镜像了代码仓库的所有内容,如果服务器出现故障,可以使用任何一个本地镜像进行恢复。而使用SVN,如果没有对服务器端的数据进行安全悲愤,出现故障后,以前的所有记录数据将会丢失,无法恢复。
  • 本地完整地镜像了代码仓库的所有内容,当由于某些原因,不能连接到中心服务器的时候,你可以在本地继续工作、提交代码,等到网络连通,再将更新同步到中心服务器。

当然还有其他的好处,但是我没有体验过,无法很好得描述,等以后有经验了在补充吧。

安装Git

Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。

apt-get install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

从源代码安装

Git官方站点下载最新的源代码,如当前最新版 1.7.4.4
编译安装命令

tar -zxf git-1.7.4.4.tar.gz
cd git-1.7.4.4
make prefix=/usr/local all
sudo make prefix=/usr/local install

二进制包安装

这种方法安装方便,我使用的就是这个方法,但往往不是最新版本的Git,如我的版本就是1.7.2.1。

apt-get install git-core

安装Git帮助手册

使用二进制包安装后,发现并没有安装Git的帮助手册,源代码安装后是否有类似的情形就不知道了,如果有也可以用以下的方法进行安装。
使用git --version查看自己安装的Git版本。
然后现在对应的帮助手册,并解压到相应的位置:

curl -O "http://kernel.org/pub/software/scm/git/git-manpages-1.7.2.1.tar.bz2"
sudo tar xjv -C /usr/local/share/man -f git-manpages-1.7.2.1.tar.bz2

你还可以复制执行下面的脚本,轻松搞定手册安装:

cd /tmp
curl -O "http://kernel.org/pub/software/scm/git/git-manpages-`git --version | awk '{print $3}'`.tar.bz2"
sudo mkdir -p /usr/local/share/man
sudo tar xjv -C /usr/local/share/man -f git-manpages-`git --version | awk '{print $3}'`.tar.bz2

Git使用的其他注意事项

使用Git初始化项目的时候,你可能会遇到如下的警告信息:

warning: templates not found /usr/local/share/git-core/templates

原因是由于模版目录的读写权限造成的,使用如下命令变更模版目录的读写权限即可:

sudo chomd -R 755 /usr/local/share/git-core/templates/

参考链接:

安装Git帮助手册

Pro Git 是一本免费的Git书籍,有中文版本

Gonna Sailing ;-)
==END==