夜间模式暗黑模式
字体
阴影
滤镜
圆角
主题色
Git使用技巧

git clean

之前的文章 git-clean

exclude: 本地的.gitignore

有时候我们在本地创建的文件,不想提交到仓库时,会考虑用.gitignore。

但.gitignore文件本身往往是添加到版本控制的。为了不影响其他协作者。git提供了一个只对本地生效的规则文件

在项目的 .git/info/exclude 文件里编辑即可。规则用法与.gitignore一致。

统计两个commit之间的文件行数增改情况

将以下shell保存为diff_git_commit.sh

git log $1...$2 --pretty=tformat: --numstat | grep -v 'src/proto_lib/' | grep -v 'test/' | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -

用法:./diff_git_commit.sh commitId1 commitId2,当然你也可以用 ./diff_git_commit.sh tag1 tag2

你可能注意到了上面的grep -v。我把不需要统计的文件目录排除了。你可以按需修改以上shell。

文件权限/格式相关(常用于需要与unix协作的win下)

以下命令需要设置为全局时,在 git config 后面加 –global 即可

git config core.filemode false # 忽略文件权限
git config core.autocrlf true  # 将所有add到仓库的文本的结束符从crlf替换成lf(unix系统下将true替换成input)
git config core.eol lf # 设置行结束符,不过当core.autocrlf设置为true/input时,该配置不生效
git config core.ignorecase false  #区分大小写

分支相关

git push origin :branchName # 删除远程分支。其实就是把空分支push上去
git fetch origin --prune # 清除远程没有了,本地却还有的origin分支

Tag

git tag -a tag名 -m "tag描述" # 创建tag
git push origin tag名  # 推送指定tag到远程
git tag [-n] [--sort=creatordate] # 列出所有tag,并按创建时间排序
git fetch --tags # 从远程拉取所有tag

 

暂无评论

发送评论 编辑评论


				
上一篇
下一篇