常用命令
初始化用户
1 | git config --global user.name "Your Name" |
建立仓库
1 | mkdir storehouse //建立仓库,可以手动创建文件夹 |
添加文件
1 | git add . //添加所有文件 |
提交到仓库
1 | git commit -m "commit message" //提交文件到仓库,并注释message |
查看仓库修改情况
1 | git status //查看仓库修改情况 |
回退版本
1 | git reset --hard HEAD~1 //回退到上一个版本 |
撤销修改
1 | git reset --merge HEAD~1 //撤销修改 |
删除
1 | git rm file //删除文件 |
使用远程仓库,例如github
添加远程仓库、上传到github
1 | cd ~/.ssh/ //如果没有执行第二行代码,有的话执行第三行代码 |
删除当前关联的remote仓库
1 | git remote -v //查看当前关联的仓库 |
远程仓库克隆
1 | git clone https://github.com/RealChuan/AppTools.git |
分支管理
分支操作
1 | git branch //查看当前分支 |
子模块管理(submodule)
添加子模块
1 | git submodule add https://github.com/ftylitak/qzxing.git 3rd/submodule/qzxing |
更新子模块
1 | git submodule update --init --recursive |
删除子模块
1 | git submodule deinit -f 3rd/submodule/qzxing |
其他操作
提交中文文件
1 | git config --global core.quotepath false //识别中文 |
多分支提交时:git配置过程中fatal:拒绝合并无关的历史
1 | //首先将远程仓库和本地仓库关联起来: |
统计仓库代码行数
1 | 其中 -name “*.cpp” 就表示扩展名为.cpp的文件。 |
统计用户所写代码行数
1 | git log --author="$(git config --get user.name)" --pretty=tformat: --numstat | awk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END { printf "added lines: %s removed lines : %s total lines: %s\n",add,subs,loc }' |
windows下客户端升级
1 | git update-git-for-windows |
强制覆盖本地的代码
1.拉取所有更新
1 | git fetch --all |
2.分支重置
1 | git reset --hard origin/<branch_name> |
设置代理和取消代理
1.设置代理
1 | git config --global http.proxy http://proxy.xx.com:8080 |
2.取消代理
1 | git config --global --unset http.proxy |
忽略文件权限变化
1 | //全局忽略文件权限变化 |
大小写敏感
1 | //全局大小写敏感 |
合并上一次提交的内容
1 | git commit --amend --no-edit |
变基
1 | // 修改向前的10次提交(commit) |