
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^