转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/70332707
本文出自【赵彦军的博客】
在 Android Studio 中要操作 Git 服务,有两种方式,它们分别是 GUI 和 命令行方式,今天就着重介绍 命令行 方式操作 Git 服务 。
首先在 Android Studio 里面找到 命令行窗口,如下图所示:
![这里写图片描述]()
概念
git 操作流程图
![这里写图片描述]()
专有名词了解
- Workspace:工作区
- Index / Stage:暂存区
- Repository:仓库区(或本地仓库)
- Remote:远程仓库
常见命令
1、查看 Git 版本信息
--
结果:
git version 2.11.0.windows.1
2、获取当前登录的用户
-- .
结果:
zhaoyanjun
3、获取当前登录用户邮箱
-- .
4、设置当前登录用户的用户名
git config --global user.name '赵彦军'
5、设置当前登录用户的邮箱
git config --global user.email '362299465@qq.com'
6、初始化仓库
文件夹下初始化一个仓库,此时文件里会到一个.git的隐藏文件夹
git init
7、查看本地所有的分支
git branch
效果如图所示:
![这里写图片描述]()
可以看出,我的本地有两个分支:master 分支 、zhaoyanjun 分支。 master 分支 显示的是绿色,左侧有一个 * 号,表示,当前我们在 master 分支上操作。
8、查看本地和远程所有分支
git branch -a
效果如图所示:
![这里写图片描述]()
可以看出,本地有两个分支(master、zhaoyanjun),红色的记录有4条,代表4条远程分支(laijian、master、zhaoyanjun、zhiqiang)。
9、查看远程所有分支
git branch -r
10、创建分支
创建 dev 分支。
git branch dev
11、切换分支
切换 dev 分支为当前分支
git checkout dev
12、创建并切换分支
创建并切换 dev 分支。相当于 git branch dev 和 git checkout dev 的合集。
git checkout -b dev
13、添加文件
把 当前根目录中的 loader1.png 添加在暂存区。 add 后面需要写 文件的相对路径。
git add loader1.png
把 image 目录下的 loader1.png 图片添加到暂存区
git add image/loader1.png
在 Android Studio 很多层级的目录文件中,如何获取文件的路径:
![这里写图片描述]()
14、批量添加文件
git add -A
15、查看log
git log
退出 log
q
删除相关
git branch -d dev
删除本地仓库的 dev 分支
git push origin :dev
删除远程的 dev 分支
git rm 文件名
拉取更新
git pull
表示把你的本地当前分支里的每个提交(commit)取消掉,并且把它们临时 保存为补丁(patch)(这些补丁放到”.git/rebase”目录中),然后把本地当前分支更新 为最新的”origin”分支,最后把保存的这些补丁应用到本地当前分支上。
--
提交相关
git commit -a -m '修复一个bug'
git push origin master
合并分支
git merge dev
git merge origin/dev
Diff 相关
Tag 相关
git tag
git tag –d tag名字
git show tag名字
git tag 标签名
git tag 标签名 该版本ID
回退 reset 相关
reset命令有3种方式:
1、 将本地的状态回退到和远程一样
--
2、将暂存区里面的修改清空 , 回退到上一次提交的记录
--
3、将本地的状态回退到 某个版本
--
将本地状态回退到 5230bb6 这次的提交
Git commit 日志规范
一般情况下,在 commit 的时候,是要求必须写 commit 日志,否则不能 commit . 那么 commit 日志也是需要规范的。日志格式一般为:
type( scope ): subject
空行
body
空行
footer
type(必需)、scope(可选)和subject(必需)。
type
用于说明 commit 的类别,只允许使用下面7个标识。
如果type为 feat 和 fix ,则该 commit 将肯定出现在 Change log 之中。其他情况(docs、chore、style、refactor、test)由你决定,要不要放入 Change log,建议是不要。
scope
scope用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。一般有三个可以选择。
- all :表示影响面大 ,如修改了网络框架 会对整个程序产生影响
- loation: 表示影响小,某个小小的功能
- module:表示会影响某个模块 如登录模块、首页模块 、用户管理模块等等
subject
subject是 commit 目的的简短描述,不超过50个字符。
以动词开头,使用第一人称现在时,比如change,而不是changed或changes
第一个字母小写
结尾不加句号(.)
body
具体的修改信息 应该尽量详细
footer
放置写备注啥的,如果是 bug ,可以把bug id放入
效果图如下图所示:
![这里写图片描述]()
参考资料
http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html