多人开发就必须使用版本控制,不然代价太大,Git就是版本控制器的主流产品之一
杂谈
Git和SVN最主要的区别
SVN
-
是集中式的版本控制系统,库版本集中放在中央服务器
-
工作的时候用自己的电脑从中央服务器得到最新版本
-
完成工作后提交到中央服务器
-
必须联网工作
GIT
-
是分布式的版本控制系统,每一个人都是一个完整的版本库(怕拿走代码跑路)
-
不需要联网工作
安装
移动到页面的最下面下载最新版之后,选择对应的版本
剩下的一路next安装
安装好之后,在开始
中就存在以下三个程序
- Git Bash:Unix和linux风格的命令行,推荐使用
- Git CMD:windows分割的命令行
- Git GUI:图形化界面,不建议使用
linux命令
基本的linux命令
command | introduce |
---|---|
cd | 改变目录 |
cd .. | 返回上级 |
clear | 清屏 |
pwd | 显示当前所在的目录路径 |
touch | 新建文件 touch index.js |
rm | 删除文件 rm index.js |
mkdir | 新建一个目录 |
rm -r | 删除一个文件夹 rm -r src |
mv | mv index.html test将index.html移动到test目录(起初index.html,test同级) |
history | 查看历史的命令 |
help | 帮助 |
exit | 退出 |
# | 注释 |
Git配置
#查看配置
git config -l
#查看不同级别的配置文件 (系统级)
git config --system --list
#查看当前用户(gobal)配置 (全局)
git config --gobal --list
所有的配置文件都保存在本地
- E:Gitetc Git安装目录下的gitconfig文件 系统级
- C:Users10134 .getconfig全局级
设置用户名与邮箱
当你安装Git后首先需要做的事情是设置你的用户名和邮箱。因为每次Git提交都会使用该信息。他会被永远的嵌入到你的提交中
git config --global user.name "hellodz"
git config --global user.email "111@qq.com"
Git基本理论(核心)
Git本地有三个工作区域
-
Workspace:工作区就是你平时存放项目代码的地方
-
Index/Stage:暂存区,用于临时存放你的改动,实际上,他只是一个文件
-
Repository:仓库区,就是安全存放数据的位置,这是你提交所有版本的数据
-
Remote:远程仓库,托管代码的服务器
Git项目搭建
克隆远程仓库
git clone [url]
Git文件操作
忽略文件
有时候我们不想将某些文件纳入版本控制中,比如数据库文件,临时文件,设计文件等等
在主目录下,建立.gitignore
文件,此文件有如下规则
- 忽略文件中空行或以井号(#)开始的行将会被忽略
- 可以使用Linux通配符,例如:(*)代表任意多个字符,问号(?)代表一个字符,方括号[abc]代表可选择字符,大括号({string1,string2...})代表可选的字符串等
- 如果名称的最前面有一个感叹号(!)表示例外不被忽略
- 如果名称的最前面有一个路径分隔符(/),表示要忽略的文件在此目录下,而子目录中的文件不忽略
- 如果名称的最后面有一个路径分隔符(/),表示要忽略的是此目录下该名称的子目录,而非文件
#注释
*.txt #忽略所有.txt结尾的文件
!lib.txt #但lib.txt除外
/temp #仅忽略项目根目录下的TODO文件,但是不包括其他目录的temp
build/ #忽略build/目录下的所有文件
doc/*.txt #会忽略doc/a.txt 不会忽略doc/temp/a.txt
使用码云
-
登录
-
设置本机绑定SSH公钥,实现免密码登录
#进入C:Users10134.ssh 目录 #生成公钥(.ssh右键Git Bash Here) ssh -keygen
- 新建仓库
IDEA集成Git
- 新建项目,Git
- 将我们远程的git文件目录
拷贝
到项目中即可
- 将我们远程的git文件目录
- 修改文件,使用IDEA操作git
- git add.
- git commit -m "测试"
- git push
- 提交测试
卸载
如果你之后想卸载,只需两步即可。
- 删除环境变量
- 卸载exe
Git常见问题
问:首先,两个同事写的是同一个控制器的接口。
同事A代码写好了,还没有提交到远程仓库,但是,同事B写好了代码提交到了远程仓库
这时同事A想进行提交了,执行add,pull,commit,push
问:同事A在pull提交代码的时候会出错吗,为什么?
答:两个人写了同一个地方,第二个人在push的时候,会发生版本冲突,
需要合并,即同事A需要先改成之前的版本,然后pull,再改代码,再commit,push。