基础操作
查看全局配置信息
设置全局配置信息
1
| git config --global user.name "wwyz"
|
初始化本地仓库
将文件加入git版本库
拉取代码
查看文件状态
提交代码
1 2
| git commit "说明" git commit --amend # 重新提交
|
移除文件,移除后文件不在被版本控制
1 2
| git rm git rm --cached readme.txt #缓存中移除
|
移动文件
查看提交文件历史
1 2
| git log git log -p -2 #-p选项展开显示每次提交的内容差异,用-2则仅显示最近的两次更新
|
查看远程仓库
1 2 3 4 5 6 7
| git remote -v # 添加远程仓库 git remote add pb git://github.com/paulboone/ticgit.git # 拉取远程代码更新 git fetch pb # 查看远程仓库的信息 git remote show origin
|
推送提交的代码
忽略文件
通过在项目根目录配置.gitignore文件忽略要忽略的文件/文件夹。
Java项目一般忽略:.idea、target、out、classes
前端项目一般忽略:.idea、node_modules、dist
.gitignore 格式规范如下:
- 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
- 可以使用标准的 glob(shell 所使用的简化了的正则表达式)模式匹配。
- 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
1 2
| *.[oa] # 忽略所有以 .o 或 .a 结尾的文件 *~ # 忽略所有以波浪符(~)结尾的文件
|
Tag打标签
对某一时间点上的版本打上标签,通常结合版本使用。Git 使用的标签有两种类型:轻量级的(lightweight)和含附注的(annotated)。轻量级标签就像是个不会变化的分支,实际上它就是个指向特定提交对象的引用。而含附注标签,实际上是存储在仓库中的一个独立对象,它有自身的校验和信息,包含着标签的名字,电子邮件地址和日期,以及标签说明,标签本身也允许使用 GNU Privacy Guard (GPG) 来签署或验证。一般我们都建议使用含附注型的标签,以便保留相关信息;当然,如果只是临时性加注标签,或者不需要旁注额外信息,用轻量级标签也没问题。
列出已有标签
分支
使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的完整副本,对大型项目来说会花费很长时间。有人把 Git 的分支模型称为“必杀技特性”,而正是因为它,将 Git 从版本控制系统家族里区分出来。Git 有何特别之处呢?Git 的分支可谓是难以置信的轻量级,它的新建操作几乎可以在瞬间完成,并且在不同分支间切换起来也差不多一样快。
什么是分支
在 Git 中提交时,会保存一个提交(commit)对象,该对象包含一个指向暂存内容快照的指针,包含本次提交的作者等相关附属信息,包含零个或多个指向该提交对象的父对象指针:首次提交是没有直接祖先的,普通提交有一个祖先,由两个或多个分支合并产生的提交则有多个祖先。
新建分支
切换分支
合并分支
1 2
| # 将其他分支合并到本分支 git merge "分支名"
|
分支变基
1 2 3 4 5
| git rebase # 将多次提交合并为一次提交,-i表示弹出交互式的界面让用户编辑完成合并操作 git rebase -i "开始提交点" "结束提交点" # 将某一段commit粘贴到另一个分支上 git rebase "开始提交点" "结束提交点" --onto "分支名称"
|