Git
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git基础
Git三种状态
- 已提交(committed):表示数据已经安全在本地数据库中。
- 已修改(modified):表示修改了文件,但还没有保存到数据库中。
- 已暂存(staged):表示对一个已修改文件的当前版本做了标记,使之包含在下次提交快照当中。
Git工作流程
- 工作目录中修改文件
- 暂存文件,文件快照放入暂存区域
- 提交更新,将暂存区域的文件快照存储到Git库目录
使用前配置
初始化仓库(当前路径)
git init
设置用户名和邮箱
#设置的用户名只在当前项目有效
git config user.name 用户名
git config user.email 邮箱
#加上--global那么该命令只需要运行一次,之后无论你在该系统上做任何事情,git都会使用这些信息
git config --global user.name 用户名
git config --global user.email 邮箱
配置默认文本编辑器(emacsUnix系统上的文本编译器)
git config --global core.editor emacs
查看配置信息
git config --list
检查git某一项配置git config
git config user.name
git config user.email
配置比较工具,Git可以接受 kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge, 和 opendiff 作为有效的合并工具
git config --global merge.tool vimdiff
Git基本操作
帮助命令
#查看帮助命令的帮助
git help 要查看帮助的命令
跟踪指定或全部文件(添加缓存)
#跟踪指定文件
git add 文件名
#跟踪全部文件
git add .
检查当前文件状态
git status
忽略文件.gitignore,需要自己手动创建
- 所有空行或者以
#
开头的行都会被 Git 忽略。 - 可以使用标准的
glob
模式匹配。 - 匹配模式可以以(
/
)开头防止递归。 - 匹配模式可以以(
/
)结尾指定目录。 - 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(
!
)取反。
#忽略所有以.o或.a结尾的文件
*.[oa]
#忽略所有以~线结尾的文件
*~
查看已暂存和未暂存的修改
git diff
取消已缓存的内容
git reset HEAD
从工作目录中手工删除文件
git rm [fileName]
#删除之前修改过,并已经放到暂存区,需要强制删除
git rm -f [fileName
#仅从暂存区域中移除
git rm --cached [fileName]
移动或重命名
#移动
git mv [fileName] [newUrl+fileName]
#重命名
git mv [fileName] [newFileName]
拷贝一个Git仓库到本地
#克隆到当前路径
git clone [url]
#克隆到指定路径
git clone [url] [path]
设置控制Git外观和行为
git config
参考: