Git基础.xmind
git是一个免费开源的分布式版本控制系统。每个客户端都相当于一个服务器端
托管中心种类:
局域网环境下:可以搭建GitLab服务器作为托管中心,GitLab可以自己去搭建(团队项目)
外网环境下:用Github或Gitee托管(跨团队合作)
<br />**团队合作**<br />**跨团队合作**
git用户名和邮箱配置
用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变。每次commit都会用用户名和邮箱纪录
//查看git版本git --version//清屏clear//查看用户名和邮箱git config user.namegit config user.email//修改用户名和邮箱git config --global user.name "username"git config --global user.email "email"
本地库初始化
git init

注:.git目录中存放的是本地库相关的子目录文件,不能删除和修改
git本地结构
//提交到暂存区git add 文件eg:git add demo.txt//提交到本地库git commit -m"注释" 文件 //-m 后跟注释
注:不放在本地仓库的文件,git是不进行管理的
//查看工作区和暂存区的状态 本地文件发生修改时 状态也会发生改变git status//查看提交的 显示从最近到最远的日志git log //分页展示git log --pretty=oneline //一行展示git log --oneline //简洁索引码后 一行展示git reflog //多了HEAD@{1} 表示回退到这个历史版本需要走几步//注:当历史记录过多的时候,查看日志有分页 分屏效果下一页:空格 上一页:b 尾页显示:END 退出:q//reset命令 前进或者后退历史版本git reset --hard 索引注:hard参数:本地库指针移动时,重置暂存区和工作区。(跟随着本地库指针)mixed参数:本地库指针移动时,重置暂存区,工作区不动soft参数:本地库指针移动时,暂存区和工作区不动//删除工作区中的文件rm 文件git add 文件 //将删除操作同步到暂存区git commit -m"注释" 文件 //将删除操作同步到本地库 不是物理删除,只是动了一下索引//找回本地库中删除的文件 实际上就是将历史版本添加到刚才添加文件的那个版本即可git reset --hard 索引 //做回滚操作//比较工作区和暂存区的文件git diff 文件//比较暂存区和本地库的文件git diff 索引 demo2.txt
//错误1remove the file manually to continue.到.git的文件夹,删除index.lock 即可
分支
版本控制过程中,使用多条线同时推进任务。多个分支并行开发,互不影响,提高开发效率。
//查看分支git branch -v//创建分支git branch branch01//切换分支git checkout branch01//合并分支git merge 分支名 //先切换回master分支注 冲突问题如果在两个分支在同一个文件同一个地方进行修改,就会发生冲突;显示(master|merging)这时需要决定留下哪一部分,添加到暂存区和本地库就行了。(添加到本地库时 commit后不带文件名)eg:git commit -m "解决了冲突问题"

远程库初始化
在github上new repository就行了
//查看远程库是否在本地库有别名git remote -v//在本地库为远程库起别名为orgingit remote add orgin https://github.com/wonderfh/GitRespTest.git//删除本地为远程库起的别名git remote rm origin//推送操作git push orgin master //向远程库推送分支//克隆操作git clone 远程库地址 //克隆完后要进入仓库才能查看信息(注意进入仓库右边有一个master)注:克隆操作完成了操作1 初始化本地仓库2 将远程仓库内容完整的克隆到本地3 替我们创建远程库的别名
//远程库拉取操作pull相当于fetch操作和merge操作的合并git fetch orgin master //orgin:远程库别名 master:远程库分支//抓取后在远程库看看内容是否正确git checkout orgin/master//合并操作git merge gWork/master//远程库的拉取可以直接pull命令完成 代码简单时用,省事git pull orgin master
//错误2OpenSSL SSL_read: Connection was reset, errno 10054//打开Git命令页面,执行git命令脚本:修改设置,解除ssl验证 再次拉取即可git config --global http.sslVerify "false"
注:clone和pull的区别
clone:从远程服务器克隆一个一模一样的版本库到本地,复制的是整个版本库(clone是将一个库复制到你的本地,是一个本地从无到有的过程)
pull:从远程服务器获取到一个branch分支的更新到本地,并更新本地库(pull是指同步一个在你本地有版本的库内容更新的部分到你的本地库)
SSH免密登录
1 进入主用户
cd ~
2 执行生成一个 .ssh 的目录
ssh-keygen -t rsa -C 2437350661@qq.com //用自己账户的邮箱

3 打开 .pub 文件复制里面的内容 去github/gitee 内设置密钥
4 此后 就可以正常进行push操作 不能每次都要登录了(要在ssh远程地址上)
本地库的删除(慎用)
ls -la //查看仓库目录下的 .git 隐藏文件夹rm -rf .git //删除文件夹
**
idea集成git
#在本地库推送在add和commit操作执行完后,就当本地仓库去把东西都推送到线上#先进行拉取操作 保证现在的代码是最新的 --allow-unrelated-histories允许不相关历史合并git pull orgin master --allow-unrelated-histories//点 i 进入编辑模式;退出 esc ; :wq 保存;#推送git push -u orgin master -f
注意点:
1 在本地库增加了新的操作后 要push到远程仓库前,为了防止冲突,保证现在的代码是最新的,要先进行pull操作 没有冲突后再push操作
