Git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。 Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就纳闷了。
Git是分布式版本控制系统,那么它就没有中央服务器的,每个人的电脑就是一个完整的版本库,这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
因为Git是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。
git config --global user.name “zhanghefei”
Git config --global user.email “[email protected]”
git config –global 参数,有了这个参数,表示你这台机器上所有的Git仓库都会使用这个配置,当然你也可以对某个仓库指定的不同的用户名和邮箱。
git init 将目录变成git仓库
git add readme.txt 将readme.txt加入到git本地仓库中
Git commit 文件提交 -m参数加注释
Git status 查看当前是否还有文件没有提交
git diff readme.txt 查看readme.txt文件修改了却没有提交的内容
Git log 查看git操作的历史记录 精简版显示:git log --pretty=oneline
版本回退:可以使用如下2种命令,第一种是:git reset –hard HEAD^ 那么如果要回退到上上个版本只需把HEAD^ 改成 HEAD^^ 以此类推。那如果要回退到前100个版本的话,使用上面的方法肯定不方便,我们可以使用下面的简便命令操作:git reset –hard HEAD~100 即可
Cat readme.txt 查看readme.txt的内容
Git reflog 查看commit操作的版本号
Git reset –hard 版本号 回退到指定版本
Git checkout –readme.txt 把readme.txt文件在工作区做的修改全部撤销
工作区:就是你在电脑上看到的目录,比如目录下testgit里的文件(.git隐藏目
录版本库除外)。或者以后需要再新建的目录文件等等都属于工作区范畴。
版本库(Repository):工作区有一个隐藏目录.git,这个不属于工作区,这
是版本库。其中版本库里面存了很多东西,其中最重要的就是stage(暂存区),
还有Git为我们自动创建了第一个分支master,以及指向master的一个指针HEAD。
rm b.txt 删除文件
git commit 可以彻底删除文件 或者使用 git checkout –b.txt恢复被删除的文件
创建SSH Key。
ssh-keygen
建立连接:git remote add origin https://github.com/tugenhua0707/testgit.git
把master分支推送到远程github git push –u origin master
由于远程库是空的,我们第一次推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令。
将远程仓库克隆到本地 git clone https://github.com/Kevin12123/testgit2.git
Git checkout -b dev 创建并切换分支
Git branch 查看当前所有分支 带*号的为当前分支
Git checkout dev 切换到Dev分支
Git merge dev 将dev分支上的内容合并到master上
Git branch -d dev 删除dev分支
推送分支: git push origin master
抓取分支:git checkout -b dev origin/dev