1、Git简介git
Git是一个免费的开源 分布式版本控制系统,旨在快速,高效地处理从小型到大型项目的全部事务。github
Git易于学习, 占地面积小,具备闪电般快速的性能。它超越了Subversion,CVS,Perforce和ClearCase等SCM工具,具备廉价本地分支,便捷的临时区域和 多个工做流程等功能。app
Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,能够有效、高速的处理从很小到很是大的项目版本管理。 [1] Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。ssh
2、Git平常命令集分布式
git init ///初始化git库,在项目根目录执行工具
git add xxx ///将文件提交到本地仓库,xxx表明文件性能
git status xxx ///查看修改的文件,是否有修改或者新增的文件须要提交仓库,是否有文件能够提交新的版本, xxx文件名称,表明查看指定文件,不带xxx则查看项目全部文件状态学习
git diff xxx ///查看文件文件的修改状况, - 为旧版本内容, + 为修改/新增后的内容, xxx文件名称,表明查看指定文件,不带xxx则查看项目全部文件修改版本控制
git commit -m "xxx" ///提交新的版本,双引号里面是对提交版本的说明code
git log ///查看提交的历史记录
参数: --pretty=oneline //只显示提交版本号 参数: --graph //查看分支的合并状况
git reset --hard HEAD~xxx /// xxx表明回溯几个版本,回到指定项目提交版本,注意在指定版本后面的建立的文件与修改的文件都会删除
简写: git reset --hard HEAD^ //表明恢复到上个版本,在HEAD后面 ^ 表明一个版本,例如 ^^ 表明第二个版本,以此类推 使用版本号: git reset --hard xxx //这里的xxx表明版本的哈希值,使用哈希值指定版本,注意这里哈希值只须要版本的前几位数,具体几位数可自行判断,只要惟一便可
git reset HEAD xxx ///xxx表明文件名称,命令将添加在暂存区的文件返回到工做区,就是将add的内容删除
git reflog ///当返回到以前的版本,以后提交的代码将被删除掉,若是过段时间想找回被删除的代码就可使用 git reflog 找到提交过的版本哈希值,在使用 git reset --hard xxx便可以找回代码
git branch ///查看当前全部分支
参数: xxx //建立一个分支 例如: git branch xxx 参数: -d xxx //删除一个分支 例如: git branch -d xxx 参数: -D xxx //使用-d参数删除分支,前提是必须将分支合并,若是在没有合并的状况下-d是没法删除的,这时可使用-D参数强制删除 例如: git branch -d xxx 参数: --set-upstream-to xxx origin/xxx //本地分支与远程分支没有连接关系时,使用此参数设置连接 例如: git branch --set-upstream-to test origin/test
git checkout -- xxx ///xxx表明文件名,命令将修改的内容所有撤销,若是有提交使用add命令提交暂存则回到最后暂存时状态不然回到最后提交的版本
git checkout 分支名称 ///切换到指定的分支,切换回master时,子分支提交的文件将暂时不存在版本,需将分支合并
git checkout -b xxx ///xxx表明分支名称,上面两个命令的简写,即建立一个分支,并切换到建立的分支下
git checkout -b xxx origin/xxx ///在本地建立分支并与远程分支同步,xxx能够是同一个命名,也能够不同
git merge xxx ///xxx表明分支名称,在返回主master分支时须要将子分支提交的文件合并到master,这是一种快速合并,单纯的将master指向xxx
说明: 当主分支与其余分支产生冲突时,那么将没法进行合并,须要将冲突解决
git merge --no-ff -m "xxx" ??? ///这是一种合并并提交新的版本信息,xxx表明版本说明,???表明分支名称
git remote add origin xxx ///xxx表明远程仓库地址,命令添加一个远程仓库,这里的仓库是属于本身的仓库
git remote ///查看远程仓库名称
参数: -v //查看库的详细信息,是否有push权限
git push -u origin xxx ///将xxx分支上传到远程仓库中,-u 表明将本地的xxx上传到远程仓库中,而且与远程仓库中的xxx合并
git pull ///从远程仓库同步信息
git rebase ///将远程历史分支文件状态合并到master中,使 git log --graph 分支状况变成一条直线,看上去美观
git clone xxx ///xxx表明远程项目地址,须要在Github上复制开源项目时,通常使用这个命令比较多,支持https协议和基于ssh的git协议
git stash ///保存当前分支的工做,应用场景应该是在须要切换到其余分支工做时,而当前工做并未所有完成,促使你没法提交新的版本,即须要保存当前的工做状态
git stash list ///查看当前全部保存的工做
git stash apply ///恢复工做,但并不删除保存的状态,存储过屡次的状态,能够指定恢复的状态
指定版本:
git stash apply stash@{???} //???表明版本号通常是0-N的Integer类型
git stash drop ///删除保存的工做状态
git stash pop ///恢复工做状态并删除保存的工做状态
git tag xxx///xxx标签名称
git tag ///查看所有标签
git tag -d xxx///xxx标签名称,命令删除指定名称的tag
git tag xxx ??? ///xxx标签名称,???版本哈希值,命令给指定的版本设置一个tag
git tag -a xxx -m "sss" ??? ///xxx表明tag名称,sss表明tag说明,???表明版本哈希值
git show xxx ///xxx表明tag名称,方法查看版本信息
git push origin xxx ///xxx表明tag名称,将指定标签推送到远程库
git push origin --tags ///将所有标签推送到远程库
git push origin :refs/tags/xxx ///删除远程仓库的标签,xxx表明标签名称
git config ///查看git配置
参数: --list //查看项目配置 参数: --global //查看全局配置
3、学习地址
END