git本地分支重命名及push

简介

介绍git本地分支如何重命名及更新到仓库

命令

  • 重命名分支
git branch -m  <旧分支名> <新分支名>
  • 删除远端旧分支
git push origin :<旧分支名>

ps.注意旧分支名前加冒号

  • push新分支到远端
git push origin <新分支名>

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

简介

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

环境

  • git (version >= 2.13.0)

ps. 2.13.0版本起支持includeIf

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

简介

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

示例

git log

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

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

效果图

效果图

使用git管理emacs配置文件

简介

使用github管理emacs配置文件

详细步骤

  1. 在github上创建.emacs.d仓库
  2. 现有的.emacs.d目录重命名,及仓库clone
$ mv .emacs.d .emacs.d.org
$ git clone git@github.com:private-account/.emacs.d.git

GIT本地删除除master以外所有分支

主要命令

git branch | grep -v "master" | xargs git branch -D

注意点

  • 执行前需要切换到master分支执行
  • 当前分支未做修改

增强命令

git stash && git checkout master && git branch | grep -v "master" | xargs git branch -D

GIT颜文字COMMIT(CLI命令行模式)

颜文字commit的好处

  • 提升commit内容的阅读性
  • 有利于commit内容解藕 (更新插件一个commit,编写代码一个commit。一次提交里,最好不包含多种性质的操作)

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` &amp;&amp; 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 %