时光飞逝,不知不觉又是新的一年。接触Git也有快1年了,入职新公司后小伙伴们也都由Svn投入了Git的怀抱。大家用了也有一阵子了,大的问题也没什么,但是很多小伙伴还是很浅的使用,仅仅是clone,pull,push……而且大多数都很依赖客户端,可能压根只是记住了Svn对应的检出,更新,提交……
所以这阵子项目经理安排我希望让我给大家普及一下Git相关的东西。想想自己更喜欢命令行,也不知道从哪里讲起呢……其实我更希望小伙伴们能更多的用命令行来解决,而不是客户端用鼠标点击,因为如此每一行命令自己都清楚的能知道自己在干什么。Git命令很多,但是常用的也就那么些,其实并没有想的那么复杂,在我刚开始的时候我也很惧怕那么多的字母组合,但是习惯了之后发现真的很好用。借此机会总结一下常用的Git命令。
个人配置
安装完成Git之后,首先当然是要配置账户信息,为了之后方便的和remote仓库交互操作
1
| //--global参数为全局Git设置,可以在自己不同仓库下单独配置,
git config --global user.name youUserName
git config --global user.email yourEmailAddress
git config --list#查看配置的信息
|
新建仓库
1
| git init //初始化本地Git仓库
git status //获取当前仓库状态
|
仓库克隆
1
| git clone gitRepoPath //克隆Git工程到本地
//git clone https://github.com/asker517/AndroidCodeBuckets
//克隆到自定义文件夹
//git clone https://github.com/asker517/AndroidCodeBuckets localDir
|
本地操作
1
| git add newFileName //.或*跟踪(所有)新文件
git rm -f * //移除文件
git rm --cached * //取消跟踪
git mv file_from file_to //重命名跟踪文件
git log //查看提交记录
git commit //提交更新
git commit -m 'message' //附带提交简单的提交信息
git commit -a //跳过使用暂存区域,把所有已经跟踪过的文件暂存起来一并提交
git commit --amend //修改最后一次提交
git reset HEAD * //取消已经暂存的文件
git checkout -- file //取消对文件的修改(从暂存区去除file)
git checkout branch|tag|commit -- file_name //从仓库取出file覆盖当前分支
git checkout -- . //从暂存区去除文件覆盖工作区
|
分支管理
1
| git branch //列出本地分支
git branch -r //列出远端分支
git branch -a //列出所有分支
git branch -v //查看各个分支最后一个提交对象的信息
git branch --merge //查看已经合并到当前分支的分支
git branch --no-merge //查看为合并到当前分支的分支
git branch test //新建test分支
git checkout test //切换到test分支
git checkout -b test //新建+切换到test分支
git checkout -b test dev //基于dev新建test分支,并切换
git branch -d test //删除test分支
git branch -D test //强制删除test分支
git merge test //将test分支合并到当前分支
git rebase master //将master分之上超前的提交,变基到当前分支
|
远端
1
| git fetch originname branchname //拉去远端上指定分支
git merge originname branchname //合并远端上指定分支
git push originname branchname //推送到远端上指定分支
git push originname localbranch:serverbranch //推送到远端上指定分支
git checkout -b test origin/dev //基于远端dev新建test分支
git push origin :server //删除远端分支
|
标签
1
| git tag //列出现有标签
git tag v0.1 //新建标签
git tag -a v0.1 -m 'my version 1.4' //新建带注释标签
git checkout tagname //切换到标签
git push origin v1.5 //推送分支到源上
git push origin --tags //一次性推送所有分支
git tag -d v0.1 //删除标签
git push origin :refs/tags/v0.1 //删除远程标签
|
参考资料
Pro Git
LearnGitBranching