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