1.0 git 和 svn 的区别
svn
: 集中式管理(限制了工作地点工作时间服务器压力大)
优点:
1. 管理方便逻辑明确
2. 易于管理集中式服务器更能保证安全性
3. 代码一致性非常高
4. 适合开发人数不多的项目
缺点:
1.服务器压力太大,数据库容易暴增
2.如果不连接到服务器,基本上不可以工作,如果服务器不能连接
就不能提交还原对比等等
3.不适合开源开发
git
:分布式管理(不限制工作地点时间写完存在自己的版本库)
优点:
1.适合分布式开发强调的是个体
2.公共服务器压力和数据量都不会太大
3.速度快灵活
4.任意两个开发者直接很容易解决冲突
5.离线工作
缺点:
1.相对于svn学习周期较长
2.代码保密性差
1.1 git常用命令
配置git
设置全局用户名(提交代码的时候就会将用户名 和邮箱存入版本库中,其他开发人员就可以看到 是谁提交的代码)
git config --global user.name github 上的用户名
设置全局的邮箱
git config --global user.email
查看所有配置
git config --list
把远程的仓库克隆到本地
git clone
查看工作区状态:
git status
将工作区添加到缓存区
git add 文件名 文件夹名
将所有工作区的中修改的和新 添加的内容加入暂存区
git add .
git add -A
git add*
将暂存区添加到版本库
git commit -m "注释内容"
将工作区直接添加到版本库
git commit -a -m "注释内容"
git log
查看版本库日志 退出
对比
git diff (工作区与暂存区的对比)
git diff --cached (暂存区与版本库的差异对比)
git diff master (工作区与版本库的差异对比)
撤回
git reset HEAD 文件名 (从暂存区撤回到工作区)
git reset HEAD (从暂存区撤回所有文件到工作区)
git checkout -- 文件名 (从工作区撤回上一次的版本 误删可以回来)
删除
git rm 文件名 如果项目文件删除 通过此命令可以把暂存的删除
git rm -f 文件名 (如果删除暂存区的那么工作区和暂存区的文件会都删除)
git rm --cached 文件名 (只删除暂存区的文件工作区的文件保留)
同步到远程仓库
git remote (查看远程仓库的名字)
git push 仓库地址 (推送到远程仓库)
git pull (拉取)
git分支结构
git branch (查看所有本地分支)
git branch -r (查看远程所有分支)
git branch -a (查看本地所有分支和远程所有分支)
git branch 分支名 (创建一个新分支)
git checkout 分支名 (切换分支)
git checkout -b 分支名 (创建并切换到新分支)
git branch -d 分支名 (删除分支)
git merge 分支名 (合并指定分支到当前分支,主分支合并自定义分支)