[toc]

git attributes文件

gitattributes是一个文本文件

格式如下

1
匹配的文件如(*.py) 属性1(如text)  属性2(如eol=lf)

属性有4种状态,以text为例

1
2
3
4
*           text=auto #设置值
*.sh text #设置text
*.jpg -text 不设置
*.py 未声明

常见属性说明

txt:行尾规范化,值为auto时,进入git库行尾自动转为LF,若git库中已经CRLF则不转换

eol: 值为CRLF时进入工作目录为CRLF,值为LF时进入工作目录为LF

git 操作

克隆指定分支

1
git clone -b feature-vnuma ssh://git@dev.zstack.io:9022/mingmin.wen/zstack.git

查看分支

1
2
3
4
git branch    #查看本地分支
git branch -a #查看所有分支,包括本地和远程
git branch -r #查看远程分支
git branch -vv #查看上有

同步远程分支

1
2
git fetch #本地分支与远程分支保持同步
git checkout -b 本地分支 origin/远程分支 #拉去远程分支并创建对应的本地分支

git reset 区别

stage(index) 区域

暂存区Stage只是一个简单的索引文件而已, .git/index文件

git 数据流程图示意图

合并不同分支

  1. 切换到要最终合并到的目标分支targetB git checkout targetB
  2. 将要合进的分支sourceB合并到目标分支 git merge sourceB 即可将sourceB合并到targetB
  3. 如果有冲突请看下一节

处理合并冲突

  1. 一般ide都会提示你进入冲突处理,逐行处理冲突(使用目标分支的还是你自己分支的)
  2. 使用git mergetool 进入处理冲突,但是需要自己配置git mergertool

配置mergetool

  1. 检查当前系统插件git mergetool --tool-help 看一下支持列表

  2. 选一个工具下载下载,例如 beyound compare

  3. 配置git config --global merge.tool bc4 git config --global mergetool.bc4.path "bcomp.exe的路径"