如果多人合作时,git也是需要中间交换服务器来解决冲突合并,这不还是集中式版本控制吗?
而svn不是也可以将所有源码下载到本机,然后在本机修改,保存在本机上,为什么这个不能说是分布式,提交的时候不也是解决冲突合并就ok吗?
git和svn的区别:
https://blog.csdn.net/hellow__world/article/details/72529022
git详细使用说明:
https://my.oschina.net/gsbhz/blog/337719
git使用过程简介:
准备工作
1.下载git,并安装,安装完毕后,桌面空白处上右键,菜单出现Git GUI Here和Git Bash Here既安装成功
2.注册github账号(这一步不是必须,因为本文要配合github使用,所以需要github作为远程仓库)
Git基本常用命令如下:
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 放弃本地修改
如果在修改时发现修改错误,而要放弃本地修改时,
一,未使用 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 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改。