多个组织用户git commit时如何区分邮箱提交

简介

作为一个码农通常会拥有github,公司的gitlab/gerrit或个人搭建的gitlab等两个及两个账号。公司提交代码时,通常是用公司的邮箱和用户名提交代码。而像github这种我们又希望用个人邮箱和昵称来提交。当然你可以为每个项目单独本地配置user.emailuser.name信息。但组织的git仓库越来越多时,这种方式就显得繁琐多了。下面主要就是讲解如何为一个组织全局配置一个单独的用户信息。

环境

  • git (version >= 2.13.0)

ps. 2.13.0版本起支持includeIf
Continue reading

git比较多个文件在两个分支下的差异

简介

一般工作中,我们每次代码测试通过后,代码需要合并到master分支,并将master分支的代码发布到线上。在合并回master过程,如果涉及到多团队并行开发时,可能会遇到代码合并冲突。在修复冲突过程中,可能将别人的代码误删或自己的代码被别人误删。这时我们如何快速判断,master分支上包含了本次开发功能的所有代码?本文主要介绍如何通过管道命令,快速地找出本次需求中开发过的文件在master分支和测试环境分支下的代码差异。

示例

git log

从上图可知,从master拉取新分支名为test,且该分支上有两个提交。
Continue reading

Git commit消息中附带jira_id/issue_id

简介

在查询git log时,如何知道commit是对应哪一期的需求?
手动在commit信息中,填写jira_id是一个可行的办法,但一期的需求往往由多个commit,如果每个commit中都填写一次jira_id的话,那明显不是程序员的范了。
一般公司里都用到JIRA 或 Redmine等工具。当开发需求/解决bug时都有对应的jira_id或issue_id。
本文主要演示如何让git commit消息中附带jira_id/issue_id

效果图

效果图
Continue reading

Git alias

Git alias列表


[alias] recom = commit --amend diffh = diff HEAD diffhh = diff HEAD^ cbran = rev-parse --abbrev-ref HEAD cancel = reset --soft HEAD^ cpush = !git push origin `git cbran` cpull = !git pull origin `git cbran` fpull = !git fetch origin `git cbran` && git reset --hard origin/`git cbran` slog = log --pretty=format:'%C(yellow)[%ad] %C(green)%h %Creset: %s' --date=iso delete-brans = !git branch --merged | grep -v \\* | grep -v 'master\\|release' | xargs -I % git branch -d %

Continue reading