星空下的程序猿 2020-01-10
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 完整命令手册地址:http://git-scm.com/docs
PDF 版命令手册:github-git-cheat-sheet.pdf
一、前往官网下载安装Git
二、配置Git
初次运行Git前需要进行配置,配置工作只需一次,以后会沿用现在的配置,如果需要修改用相同的命令修改已有配置即可。
Git是分布式版本控制系统,所以每个设备需要自报家门:名字和Email地址。
这两条配置很重要,每次Git提交都会引用这两条信息,随更新内容永久纳入历史记录。
打开终端,进行如下配置:
git config --global user.name ‘用户名称‘ git config --global user.email ‘登录邮箱‘
三、创建版本库(用来保存我们项目中所有的文件)
1.在合适的位置创建一个空文件夹(这里我在桌面创建一个test文件夹,也就是工作区)
2.在命令行工具中进入该文件夹,执行 git init 命令
文件夹内生成一个隐藏文件.git,未设置显示的话看不见该文件,这个.git就是我们的本地仓库。
后续如果需要提交文件至本地仓库,也需要文件在工作区内(也就是这里创建的test文件夹内)
四、添加文件至暂存区
如果想将工作区的文件提交至Git仓库,需要执行 git add 文件夹名(例如git add index.tet),将文件提交至暂存区。
如果没有任何提示说明则说明添加成功,该命令可多次执行,用于添加多个文件至暂存区。
五、提交文件至仓库
添加至暂存区完成后,执行 git commit -m "提交说明信息" 将暂存区所有文件提交至仓库。
六、查看工作区文件状态
git status 命令用来查看工作区文件状态。
当所有文件已提交时:
“nothing to commit”指没有文件提交。
当我们修改工作区index.txt文件,在里面写个“hello world”时再执行git status命令:
“changes not staged for commit”指有修改未提交。
git commit –am “本次提交描述” 或 git commit –a –m“本次提交描述” 命令是指已经经历过git add 的文件无需再次执行 git add 命令,而直接将文件提交至Git。
七、查看当前文件修改内容
git diff 文件名,查看文件修改内容
八、文件的删除和恢复
1.工作区的文件删除后的恢复
(可执行git status查看被删除文件),执行 git checkout --文件名 从仓库中恢复,如果工作区该删除文件内容作出过改动,恢复的文件也只是文件之前提交时的状态,如果暂存区有该文件则恢复的是暂存区该文件,否则从Git恢复该文件。
2.如果需要删除仓库某文件,可以在工作区删除该文件后执行git add和commit命令重新提交
3.Git每一次提交修改都是一个新的版本,如果Git文件误删就需要版本回退,回退可能引起更多的问题存在,所以删除文件需要谨慎操作。
回退参考:https://www.cnblogs.com/revel171226/p/11360844.html
git log 命令可以查看各个历史版本记录。
回退到上一个版本:git reset --hard HEAD~1,数字代表回退的版本数,版本太多时可以执行git reset --hard commit id(例如git reset --hard 474a919c22232707d50c8f11d89981be9c08ceb6)
commit id在执行git log命令时会显示: