1.git和svn相比有什么优势。
GIT是分布式的,SVN不是,SVN是把所有的文件集中的放在服务端,一旦服务端宕机,就会导致有的资源丢失,而git是分布式的,每个人在本地都有自己的仓库。感觉有一点去中心化的思想。
GIT把内容按元数据方式存储,而SVN是按文件:因为git目录是处于个人机器上的一个克隆版的版本库,它拥有中心版本库上所有的东西,例如标签,分支,版本记录等。
GIT分支和SVN的分支不同:svn会发生分支遗漏的情况,而git可以同一个工作目录下快速的在几个分支间切换,很容易发现未被合并的分支,简单而快捷的合并这些文件。
GIT的内容完整性要优于SVN:GIT的内容存储使用的是SHA-1哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏(和比特币有点相似)。
2.常用命令
1)本地库初始化:git init
2)设置签名:(用于识别是那个用户提交的版本,并不是登录用)
项目级别/仓库级别:仅在当前本地库范围内有效:
git config user.name tom
git config user.email tom@cnblogs.com
系统用户级别:登录当前操作系统的用户范围:
git config --global user.name tom
git config --global tom@cnblogs.com
3)查看状态
git status(查看工作区,暂存区状态)
4)添加
git add [file name](将工作区的“新建/修改”添加到暂存区)
5)提交
将暂存区的内容提交到本地库
git commit -m "commit message" [file name](字符串里面的是就是你提交此版本的信息)
6)查看历史记录
git log --pretty=oneline、git log --oneline、git reflog
7)前进后退
基于索引值操作[推荐]
git reset --hard [局部索引值]
git reset --hard a6ace91
8)分支操作
创建分支
git branch [分支名]
查看分支
git branch -v
切换分支
git checkout [分支名]
合并分支
第一步:切换到接受修改的分支(被合并,增加新内容)上
git checkout [被合并分支名]
第二步:执行 merge 命令
git merge [有新内容分支名]
解决冲突
第一步:编辑文件,删除特殊符号
第二步:把文件修改到满意的程度,保存退出
第三步:git add [文件名]
第四步:git commit -m "日志信息"
注意:此时 commit 一定不能带具体文件名
9)远程仓库操作
git remote -v 查看当前所有远程地址别名
git remote add [别名] [远程地址]
推送
git push [别名] [分支名]
克隆
git origin [远程地址]