一、Git 和 SVN 的区别
(一) SVN 优缺点
-
优点:
-
管理方便,逻辑明确
-
易于管理,集中式服务器更能保证安全性
-
代码一致性非常高
-
适合开发人数不多的项目开发
-
-
缺点:
-
服务器压力太大,数据库容量暴增
-
如果不能连接到服务器上,基本上不可以 工作,如果服务器不能连接上,就不能提 交,还原,对比等等
-
不适合开源开发
-
(二) Git 优缺点
-
优点:
-
适合分布式开发,强调个体
-
公共服务器压力和数据量都不会太大
-
速度快,灵活
-
任意两个开发者之间可以很容易的解决冲
突
- 离线工作
-
-
缺点:
-
学习周期相对而言比较长
-
代码保密性差,一旦开发者把整个库克隆 下来就可以完全公开所有代码和版本信息
-
二、Git Bash 使用(命令行)
三、Git 的命令行使用
四、Git 本地操作(add commit status –reset hard refglog)实际操作
五、注册 gitHub 账号
六、从 gitHub 或码云上下载项目
(一) 切换到存放 git 版本库的地方
(二) Git clone url(github 上的地址)
七、设置全局用户名(提交代码的时候就会将用户名 和邮箱存入版本库中,其他开发人员就可以看到 是谁提交的代码)
(一) git config --global user.name github 上的用户名
八、设置全局的邮箱
(一) git config --global user.email 邮箱
九、查看全局邮箱
(一) git config --global user.email
十、 查看所有配置信息
(一) git config --list
十一、 master:主分支
十二、 git 的三个区
(一) workspace 工作区(当前编辑的代码区):新添 加的,和修改的未 add 操作的。
(二) stage 暂存区(作为过渡层、避免误操作、保 护工作区和版本区、分支处理):add 操作过后, 会进入暂存区
(三) repository 版本库(版本控制,本地仓库): commit 操作后,会进入本地仓库
(四) remote(远程仓库):push 操作后,会提交到远程仓库
十三、Git 命令
(一) Git status (查看工作区)
(二) Git add 文件名 1 文件名 2 …… (将一个或 多个文件添加到暂存区)
-
Git add . (将所有工作区的中修改的和新 添加的内容加入暂存区)
-
或者: git add –A (将所有工作区的中修改 的和新添加的内容加入暂存区)
-
或者:git add * (将所有工作区的中修改的和 新添加的内容加入暂存区)
-
Git add 目录名 (将指定目录加入暂存区)
(三) Git commit –m “注释内容” (将所有文件从 暂存区存入版本区)
(四) Git commit 文件 1 文件 2 –m “注释内容” (提交暂存区的指定文件)
(五) git commit -a -m “注释” (直接从工作区存入 暂存区再存入版本区,-a:存入暂存区,-m:存入 版本区)
(六) git log (查看日志) : 如果版本太多,一次显示 不全,想要退出此状态,请按 q
(七) 对比
-
Git diff (工作区与暂存区的差异对比)
-
Git diff --cached(–staged) (暂存区也版本库 的差异对比)
-
Git diff master (工作区与版本库的差异对比)
(八) 撤销
-
Git reset HEAD <file.name> (从暂存区撤销回 工作区,发现提交错了,退回一步)
-
Git reset HEAD (撤销上一次 add 提交的所 有文件)
-
Git checkout – <file.name> (从工作区撤销回上 一次提交的版本区)
-
Git commit --amend (撤销上一次的提交命令, 重新提交新的代码)
(九) 删除
-
Git rm <file.name> (如果工作区删除了一个文 件,通过此命令可以把暂存区的文件删除)
-
Git rm -f <file.name>(如果删除暂存区的文件, 那么工作区和暂存区的文件都会删除)
-
Git rm --cached <file.name> (只删除暂存区的 文件,工作区的文件保留)
(十) 恢复
-
Git checkout (commit id) <指定文件> (还原删除的文件)
-
Git reset – hard (commit id) (还原版本)
-
HEAD^ (返回上一个版本)
-
HEAD~ (返回上几个版本)
-
-
Git reflog (操作记录,可以回到当前版本)
(十一) 同步到远程仓库
-
Git remote (查看远程仓库的名字)
-
–v (查看远程地址)
-
Origin (远程仓库的名字)
-
-
Git push origin master (推送到远程仓库)
-
git push -u origin master -f (强制 push 到远程仓 库)
(十二) 多人协作解决冲突
-
Git fetch (从远程获取但不与当前代码合并)
-
Git diff master origin/master (查看两个冲 突文件的异同)
-
Git merge origin/master (合并)
-
-
Git pull(从远程获取并与当前代码合并)