what‘s the GIT?
GIT是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
- 适合分布式开发,强调个体。
- 公共服务器压力和数据量都不会太大。
- 速度快、灵活。
- 任意两个开发者之间可以很容易的解决冲突。
- 离线工作。
- 资料少(起码中文资料很少)。
- 学习周期相对而言比较长。
- 不符合常规思维。
- 代码保密性差,一旦开发者把整个库克隆下来就可以完全公开所有代码和版本信息。
Git 与 SVN 区别点:
-
1、GIT是分布式的,SVN不是:这是GIT和其它非分布式的版本控制系统,例如SVN,CVS等,最核心的区别。
-
2、GIT把内容按元数据方式存储,而SVN是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似.svn,.cvs等的文件夹里。
-
3、GIT分支和SVN的分支不同:分支在SVN中一点不特别,就是版本库中的另外的一个目录。
-
4、GIT没有一个全局的版本号,而SVN有:目前为止这是跟SVN相比GIT缺少的最大的一个特征。
-
5、GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
GIT基本命令
GIT配置
$git config --global user.name "自定制名字" $git config --global user.email "自定制邮箱" $git init # 会生成一个git文件,用来追踪管理版本库
GIT工作中用的命令
#提交代码 $git add .# .表示所有,也可以是指定文件的名字,将文件添加到暂存区 $git commit -m "描述信息" # 将文件从暂存区添加到当前分支(描述信息一定要好好写) #查看日志(可用于版本回退) $git log # 查看从最远到最近的提交日志 $git log --pretty = online # 简化日志 $git reset--hard 日志中的字符串 # 版本回退到指定版本状态 $git reflog # 记录每一次命令 #查看状态及“某个地方”(通常用于处理bug) $git status # 查看状态 $git stash # 将当前工作区的代码暂存到“某个地方”中,通常这是我们要去处理紧急任务如解bug $git stash pop # 从“某个地方”中取回原先的代码 $git stash list # 查看“某个地方”的所有存储记录 $git stash apply 编号 # 取出指定编号至工作区 $git stash drop 编号 # 删除指定编号 $git stash clear # 清空“某个地方” #分支命令 $git branch 分支名 # 创建分支 $git branch # 查看当前所在分支 $git checkout 分支名 # 切换到指定分支 $git branch -d 分支名 # 删除指定分支 $git checkout -b 分支名 # 创建并切换到该分支 $git merge 分支名 # 将分支名中的代码与当前区域的代码合并 #代码下拉及上传(master为分支名) $git pull origin master # 将代码拉下来进行工作 $git push origin master # 工作完毕将代码上传至GIT #新电脑第一次使用时 $git clone add origin 目标库地址 # 克隆目标库 $git init # 会生成一个Git文件,用来跟踪管理版本库 $git remote add origin XXX # 创建远程仓库,XXX为你的Git仓库地址 $git pull origin master # 将代码拉下来进行工作 $git push origin master # 工作完毕将代码上传至GIT
其他
$git log --graph --pretty = online --abbrev--commit # 查看当前分支合并情况 $git remote -v # 查看远程仓库信息 #打标签 $git tag #查看标签 $git tag 标签名 # 打标签 $git tag 标签名 id # 给指定id打标签 $git tag -a 标签名 -m"描述信息" id # 给指定id打上加描述信息的标签 #自定制 $git config --global alias.别名 真名 #给命令配置别名,更方便操作 $git config --global alias.last "log-1" #取别名,之后就可以用$git last来查看最后一次提交的信息