git vs svn

时间:2023-03-08 19:14:41
git vs svn

http://www.tuicool.com/articles/e2MnAb

Git与SVN的不同之处
svn为集中化的版本控制,svn获取最新的版本或者提交更新,历史记录等信息每次都要连接*版本库;
git为分布式的版本控制,git跟svn一样也可以有*版本库,每个开发人员克隆原始的代码仓库,在连接不了*服务器的情况下依然能进行本地操作;
git把文件内容按元数据存储,svn按文件名称存储;
svn分支就是备份所有项目文件到版本库中的另一个目录,速度慢而且合并起来复杂
git 分支就是指向某个commit对象的指针,实际上就是一个包含所指对象校验和(40个字符的SHA-1)的文件;
svn每次提交会把全局版本号加一,为连续的数字版本号;
git每次提交的生成一个SHA1的版本号,git识别简短的SHA1字符,只要大于4个字符且没有歧义就成;
git 的工作模式很多,svn只有集中式的工作模式。

本地仓库由git维护的三棵树组成

1.working directory - 工作目录,它持有实际文件

2.index(stage) - 暂存区,它像个缓存区,临时保存你的改动

3.HEAD history commit - 指向你最后一次提交的结果

git version

git status - Show the working tree status

git show

git log

git whatchanged

git init - Initialized empty Git repository,创建新的 git 仓库

git branch - 查看分支

git branch <name> - 创建分支

git branch -d <name> - 删除分支

git checkout -b <name> - 创建并切换分支

git merge <name> - 合并某分支到当前分支

git add * /git add ./ git add <filename> - 把它们添加到暂存区

git commit -m “注释” - 提交到本地仓库HEAD,还没到你的远端仓库

git push origin master - 将这些改动提交到远端仓库,可以把 master 换成你想要推送的任何分支

git remote add origin <server> - 将你的仓库连接到某个远程服务器

git diff <source_branch> <target_branch>

git tag 1.0.0 1b2e1d63ff - 1b2e1d63ff 是你想要标记的提交 ID 的前 10 位字符

git config -l

git stash

git stash pop

git reset HEAD^