git 练级过程中的必备基础技能,比如:
- 全局配置
- 本地打包
- 分支(branch)操作
- 子模块操作
- 合并提交历史
全局配置
全局配置信息保存在
~/.gitconfig
中
个人信息
1 | git config --global user.email "you@example.com" |
编辑器
1 | 设置成vi |
保存登录凭据
1 | 保存明文密码,默认存在 .git-credentials 文件中 |
仓库配置
更换服务端的url
1 | git remote set-url remote_name new_url |
本地打包
1 | git archive --format zip --output d:/master.zip master |
分支(branch)操作
列出分支
1 | git branch |
可以加参数
-a
所有分支,-r
远程分支
新建分支(本地),并且切换到该分支(-b 选项)
1 | git checkout -b new_branch_name |
从从服务器拉取远程,并且切换到该分支(-b 选项)
1 | git fetch origin |
仅获取最新版和两个历史版本,即最后3个版本
1 | git clone xxx --depth=2 |
clone某个分支
1 | git clone -b [branch-name] --single-branch [url] |
提交本地分支到服务器
1 | git push -u origin branch_name |
删除本地分支
1 | git branch -d branch_name |
删除服务端分支(1.7+
)
1 | git push <remote_name> --delete <branch_name> |
标签(tag)操作
1 | 含附注的标签 |
子模块操作
迁出一个项目,包含其子模块
1 | git clone --recursive <url> |
更新(pull)所有子模块(1.8.2 +
)
1 | git submodule update --recursive --remote |
删除某个子模块
1 | submodule-name 是子模块的名称,一般就是子模块的目录名称 |
指定子模块的上游分支
1 | cd your-submodule |
see:
合并提交历史
合并2个提交历史(包含HEAD),交互方式
1 | git rebase -i HEAD~2 |
参考资料