若是多人合做时,git也是须要中间交换服务器来解决冲突合并,这不仍是集中式版本控制吗?
而svn不是也能够将全部源码下载到本机,而后在本机修改,保存在本机上,为何这个不能说是分布式,提交的时候不也是解决冲突合并就ok吗?html
git和svn的区别:java
https://blog.csdn.net/hellow__world/article/details/72529022git
git详细使用说明:github
https://my.oschina.net/gsbhz/blog/337719缓存
git使用过程简介:服务器
准备工做app
1.下载git,并安装,安装完毕后,桌面空白处上右键,菜单出现Git GUI Here和Git Bash Here既安装成功分布式
2.注册github帐号(这一步不是必须,由于本文要配合github使用,因此须要github做为远程仓库)svn
Git基本经常使用命令以下:post
mkdir: XX (建立一个空目录 XX指目录名)
pwd: 显示当前目录的路径。
git init 把当前的目录变成能够管理的git仓库,生成隐藏.git文件。
git add test.txt 把test.txt 文件添加到暂存区去。
git commit –m “修改bug10879” 提交文件 –m 后面的是注释。
git status 查看仓库状态
git diff test.txt 查看test.txt 文件修改了那些内容
git log 查看历史记录
git reset –hard HEAD^ 或者 git reset –hard HEAD~ 回退到上一个版本
(若是想回退到100个版本,使用git reset –hard HEAD~100 )
cat test.txt 查看test.txt 文件内容
git reflog 查看历史记录的版本号id
git checkout -- test.txt 把test.txt 文件在工做区的修改所有撤销。
git rm test.txt 删除test.txt 文件
git remote add origin http://github.com/username/gittest 关联一个远程库
git push –u origin master (第一次要用-u 之后不须要) 把当前master分支推送到远程库
git push origin master Git会把master分支推送到远程库对应的远程分支上
git clone http://github.com/username/gittest 从远程库中克隆
git checkout –b dev 建立dev分支 并切换到dev分支上
git branch 查看当前全部的分支
git checkout master 切换回master分支
git merge dev 在当前的分支上合并dev分支
git branch –d dev 删除dev分支
git branch name 建立分支
git stash 把当前的工做隐藏起来 等之后恢复现场后继续工做
git stash list 查看全部被隐藏的文件列表
git stash apply 恢复被隐藏的文件,可是内容不删除
git stash drop 删除文件
git stash pop 恢复文件的同时 也删除文件
git add 添加 多余文件
这样的错误是因为, 有的时候 可能
git add . (空格+ 点) 表示当前目录全部文件,不当心就会提交其余文件
git add 若是添加了错误的文件的话
撤销操做
git status 先看一下add 中的文件
git reset HEAD 若是后面什么都不跟的话 就是上一次add 里面的所有撤销了
git reset HEAD XXX/XXX/XXX.java 就是对某个文件进行撤销了
若是在修改时发现修改错误,而要放弃本地修改时,
一,未使用 git add 缓存代码时。
可使用 git checkout -- filepathname (好比: git checkout -- readme.md ,不要忘记中间的 “--” ,不写就成了检出分支了!!)。放弃全部的文件修改可使用 git checkout . 命令。
此命令用来放弃掉全部尚未加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。可是此命令不会删除掉刚新建的文件。由于刚新建的文件还没已有加入到 git 的管理系统中。因此对于git是未知的。本身手动删除就行了。
二,已经使用了 git add 缓存了代码。
可使用 git reset HEAD filepathname (好比: git reset HEAD readme.md)来放弃指定文件的缓存,放弃因此的缓存可使用 git reset HEAD . 命令。
此命令用来清除 git 对于文件修改的缓存。至关于撤销 git add 命令所在的工做。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操做,就能够放弃本地的修改。