全局配置
git config --global user.email xxx@qq.com
git config --global user.name yyy
git config --global color.status auto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto
git config --global core.filemode false
git config --global core.autocrlf false
# 别名命令glog显示分支图
git config --global alias.glog "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%ci) %C(bold blue)<%an>%Creset' --abbrev-commit"
# linux和windows下git协同工作于一个项目时删除git局部配置
git config --local --unset-all core.filemode
GIT忽略版本控制(针对已追踪的文件)
git update-index --assume-unchanged PATH
补丁制作与运用
git diff xxx > patch
git apply patch
origin管理
git remote add origin origin_address
git remote set-url origin new_origin_address
GIT技巧
# dev比master多出的提交
git log master..dev
# dev和master差异的提交
git log --left-right dev...master # --left-right参数声明在commit提示后用箭头表示提交属于哪个分支
# 删除Untracked files
git clean -fd
# 版本回退,HEAD移动到指定commit
git reset --hard commit #回退HEAD、暂存区、工作区
git reset --mixed commit #回退HEAD、暂存区,保留工作区修改(默认模式)
git reset --sorf commit #回退HEAD,保留暂存区、工作区修改
git reset HEAD file #维持HEAD,回退暂存区,保留工作区
svn diff替换为vimdiff
创建 ~/.vimdiff_for_svndiff文件:
#!/bin/bash
#配置你喜欢的diff程序路径
DIFF="vimdiff"
#SVN diff命令会传入两个文件的参数
LEFT=${6}
RIGHT=${7}
#拼接成diff命令所需要的命令格式
$DIFF $LEFT $RIGHT
编辑.subversion/config 修改为
diff-cmd = /home/edgar/.vimdiff_for_svndiff
git rebase参考:https://www.jianshu.com/p/4a8f4af4e803