Git使用手册(纯手工)
1. Git的基本介绍
Git 是用于 Linux内核开发的版本控制工具。与常用的版本控制工具 CVS, Subversion 等不同,它采用了分布式版本库的方式,不必服务器端软件支持(注:这得分是用什么样的服务端,使用http协议或者git协议等不太一样。并且在push和pull的时候和服务器端还是有交互的。),使源代码的发布和交流极其方便。
因之前使用SVN较多,所以去查阅了一些Git和svn的区别。
1.1Git与svn的区别
1)Git是分布式的,SVN不是
2)GIT把内容按元数据方式存储,而SVN是按文件
3)GIT分支和SVN的分支不同
4)GIT没有一个全局的版本号,而SVN有
5)GIT的内容完整性要优于SVN
6)Git下载下来后,在本地不必联网就可以看到所有的log,SVN需要联网才可看到日志
1.2Git的优点
1)git每台电脑都有一个版本库,可以在本地做版本管理
2)速度快。git的速度远超大部分版本管理系统,包括svn
3)强大的分支管理功能
4)活跃的开源社区,如最著名的github
1.3Git的缺点
1)Git 没有严格的权限管理控制,一般通过系统设置文件读写权限的方式来做权限控制。
2) 工作目录只能是整个项目。而 svn 可以基于项目中的某一个目录。
(资料出处:https://www.cnblogs.com/somethingWithiOS/p/5636356.html)
2.Git的基本操作
2.1初始化本地版本库
打开GitBash
进入需要初始化的文件夹
<git init>初始化空白版本库
之后对应文件夹就会出现 .git文件夹
该文件夹初始化空白git本地库成功
2.2上传文件到队列
新建两个临时文件:tmp.js / hello.html
<git status>查看版本库状态
新建的两个文件都未上传 ,接下来
< git add <file> >添加需上传文件进入队列
2.3从队列中移除文件
< git rm —cache <file> >添加需上传文件进入队列
2.4从队列中提交到本地库
< git commit >上传队列文件到本地库,之后需要填写此次上传文件的备注
< git add .>上传所有本地文件到队列
此时已经将所有文件提交到本地版本库中
(<git commit –m ‘备注内容’> 可将填写备注内容和commit操作合并)
2.5忽略不重要文件
一般Log日志文件是不用上传到版本库当中的,因此我们需要在上传时忽略此类文件
<.gitignore>将需要忽略的 文件名/文件夹路径 放入此文件
在.ignore中添加log.txt
此时再进行查看,虽未上传log.txt到队列,但是需上传队列中已无log.txt
2.6新建分支
分支版本不会影响主线的代码,分支版本代码等到测试完全通过之后,可再合并到主线(master)上.
<git branch <branchName> >创建分支目录branch Name
<git checkout <branchName> >从Master转换到分支目录branch Name
此时再查看Master下,无文件需要上传到队列,表明dir2目录已经成功上传到testBranch分支目录下
2.7合并分支
合并分支需要在Master下进行
<git merge <branchName> >在Master下合并分支目录branch Name
2.8上传到远程仓库
在GitHub中可以自己创建Repository ,从本地版本库上传到GitHub中。
但是出现<tlsv1 alert protocol version>错误。
经查找是Git版本的原因,需升级版本。
(资料出处:http://www.cnblogs.com/yc-755909659/p/8490521.html)
git remote add liuyd ssh://git@10.21.16.147:22/srd-sia-program
git push -u liuyd master
递归删除文件夹.svn
for /r ./ %a in (.svn\) do @if exist "%a" rd /s/q "%a"
使用git恢复未提交的误删数据
打开终端命令行,进入到项目目录,输入git reflog,可以得到如下结果:
git记录每次修改head的操作,git reflog
/git log -g
可以查看所有的历史操作记录,然后通过git reset
命令进行恢复。
想要将代码恢复到"ssm-login初始化"时的版本,此时的head记录值为"b40839f",输入如下命令即可:
git reset --hard <HEAD@前面的数字>