前言
此文章是笔者在 github 使用中的一些经验性总结,学习的新姿势会同步更新,记录。
学习资料
1. 新手推荐
2. 帮助文档
- Git –fast-version-control
- 官方网站 / 基础中文翻译
- Git飞行规则(Flight Rules)
- GitHub秘籍
- GotGitHub: an open source E-book about GitHub in Chinese
- git-recipes – 高质量的Git中文教程
- GitHub 漫游指南 by phodal
一、github markdown语法介绍
写好 md 很重要 !!!
二、保证基本使用
1. 在公司的内网如需要配置代理
github上可以使用https进行访问。
$ git config --global http.proxy http://web-proxy.oa.com:8080
但是这样可以clone了。但是如果要push代码,那就麻烦了。每次都需要输入密码,接着往下看。
2. 上传前设置.gitignore
过滤
案例介绍,如前端 项目中充满数量庞大依赖文件的node_modules
,我们不需要上传,靠package.json
文件下载依赖包就可以
*.DS_Store
node_modules # 过滤项目中名为 node_modules 的文件夹,做上传例外操作
bower_components
.sass-cache
npm-debug.log
.idea
.vscode
# git-忽略版本控制内某些文件的修改
git update-index --assume-unchanged application/Everything/Everything.ini
3. git commit log
优雅的提交 code
,为 commit 自己的每次 commit 设置好的日志, 方便日后追溯:
Head
- type: feat 新特性, fix 修改问题, docs 文档, style 格式, refactor 重构, test 测试用例, chore 其他修改, 比如构建流程, 依赖管理.
- scope:影响范围, 比如: route, component, utils, build… 可省略
- subject:简短的提交信息
Body
- what:详细做了什么
- why: 为什么这样做
- how: 有什么后果
Footer
- 相关链接
补充:使用 svn 小乌龟提交代码没有强制需要写 commit log , 建议大家都写
4. git push免密码
每次提交代码时需要输入用户名密码,则说明你在从仓库中clone代码时使用的是HTTPS的key进行拉取代码。而使用SSH key拉取代码时,则不需要。
(1). 创建文件 .git-credentials
存储GIT用户名和密码
# 创建
touch .git-credentials
# 在vim中打开
vim .git-credentials
# 文件内容
https://{username}:{password}@github.com
(2). 长期存储密码,进入git bash终端, 输入如下命令:
git config --global credential.helper store
经过这样操作后就可以免密登录
了
注意事项
文件结构要与初始化连接 github
的.gitconfig
文件在同级别目录下
三、项目 github 平台展示
1. gh-pages
分支发布在线访问
在自己的github项目上添加gh-pages
分支,并保证里面有需要展示的代码,以index.html
作为入口就ok,可以展示项目了
- 参考:将本项目下的 dist 文件夹内容发布到远端的
gh-pages
分支
git subtree push --prefix=dist origin gh-pages
栗子
2. github 修改项目语言显示
在项目根目录添加文件名为.gitattributes
的文本文件:
touch .gitattributes
写入:
*.js linguist-language=javascript
*.css linguist-language=javascript
*.html linguist-language=javascript
意思就是将.js
、.css
、.html
当作 javascript 语言来统计,简单有效
查看案例,将展示的语言变为
javascript
=>
King-of-glory
3. 上传文件出错
(1). git 推送出现 “fatal: The remote end hung up unexpectedly”
原因:上传的文件过大,单个文件均小于 100M
解决办法:在项目.git
文件夹下寻找config
文件,添加如下代码:
[http]
postBuffer = 524288000
(2). 用于上传单个文件大于100M失败时使用