git学习之路
什么是git?
git是一些命令工具的集合它可以用来追踪,记录文件的变动。它是采取分布式管理,分布式就是不需要依赖服务器,并且本地操作无需联网,这是它的优点,任何一台机器都可以有一个本地的控制系统,可以理解成每台机器都有一个仓库,如果多人协作,还会有一个线上的仓库,用来同步信息,就是github。
git文件状态的逻辑
git总共分为三种状态,已修改,已暂存,已提交。如图
git配置的步骤及命令(Mac)
用户信息
git config --global user.name "Tony"
git config --global user.email xxx@xx.com
检查当前已配置的环境变量
git config --list
关于git使用帮助,相关的操作步骤可以按照下面命令的顺序进行学习
git help
git init //初始化目录
git clone git://github.com/schacon/grit.git //克隆库到本地,这里的操作是当前在哪个目录下就会克隆到哪个目录
git status //检查当前文件的状态
git add test.txt //添加一个跟踪文件到库里面,add后面接文件路径,文件名,. 则是当前文档全部跟踪
cat .gitignore *.[oa] *~ //忽略文件,设置一个.gitignore的文件,后面列出需要忽略文件以什么 .o .a结尾的,第二个位忽略 ~结尾的。还可以取反 !+文件名
git diff //查看尚未暂存的,并且更新了那些东西的文件
git commit //提交更新,提交到库更新本地库,之后会启动文本编辑,我们可以编辑本次的更新说明,然后esc :wq就确认更新了
git commit -a //跳过git add步骤,直接提交
git rm test.txt //移除修改或者暂存的文件,rm test.txt
git rm -cached test.txt //移除跟踪,但是不删除文件
git rm \*~ //递归删除当前目录及其子目录中所有 ~ 结尾的文件
git mv file filename //修改文件名字
git log //查看提交日志 后面加-p -2,p代表差异,2代表次数
关于日志输出相关命令
git log --stat //快速查看修改了那些文件和行数
-p 按补丁格式显示每个更新之间的差异。
--stat 显示每次更新的文件修改统计信息。
--shortstat 只显示 --stat 中最后的行数修改添加移除统计。
--name-only 仅在提交信息后显示已修改的文件清单。
--name-status 显示新增、修改、删除的文件清单。
--abbrev-commit 仅显示 SHA-1 的前几个字符,而非所有的 40 个字符。
--relative-date 使用较短的相对时间显示(比如,“2 weeks ago”)。
--graph 显示 ASCII 图形表示的分支合并历史。
--pretty 使用其他格式显示历史提交信息。可用的选项包括 oneline,short,full,fuller 和 format(后跟指定格式)。
-(n) 仅显示最近的 n 条提交
--since, --after 仅显示指定时间之后的提交。
--until, --before 仅显示指定时间之前的提交。
--author 仅显示指定作者相关的提交。
--committer 仅显示指定提交者相关的提交。
git commit --amend //撤销最后一次提交,重新提交更改信息
未完继续。。