背景知识
应用场景:
备份;
代码还原;
协同开发;
追溯(追责)
版本控制器方式
集中式:中央服务器,必须联网
分布式:每个人的电脑一个完整的版本,无需联网
特点
速度
简单的设计
支持非线性模式(可同时开发的分支)
完全式分布
可以linux内核一样大的超大项目
工作流程
配置
配置用户信息
git config --global user.name “Li Yueying”
git config --global user.email “1484265307@qq.com”
查看配置信息
git config --global user.name
git config --global user.email
解决乱码问题
git c_onfig --global core.quotepath false
${git_home}/etc/bash.bashrc加入代码
export LANG=“zh_CN.UTF-8”
export LC_ALL=“zh_CN.UTF-8”
获取本地仓库
-
任意空文件下 打开Git
-
打开Git bash窗口
-
窗口初始化:
git init
-
仓库的使用
-
状态查看:
git status
-
工作区–》暂存区 git add 文件名/
.
.
为通配符,指所有
-
暂存区–》本地仓库
git commit -m "注释内容"
-
查看提交日志
git log [option]
-
--pretty=online 将提交信息显示为一行 --abbrev-commit 使得输出的commitId更加简短 --all显示所有分支 --graph以图的形式显示 commitID`
-
-
版本回退:`git reset --hard
- 已知commitID,则无知前进、后退皆可以
-
查看版本回退日志
- log reflog
-
忽略列表
- 以相对路径格式输入文档即可
vim .gitgnore
-
-
分支基础
git branch
查看本地分支git branch new_name
创建新分支- 一个工作区只能对一个分支服务
- 切换:
git checkout 分支名
- 切换到一个不存在的分支:
git checkout -b 分支名
- 其他分支看不见被ignore的
- 一般将其他合并到master
- 切换到master
git merge 被合并的分支名
- 合并的快进模式
- 删除分支(需做检查)
git branch -d 分支名
- 删除分支(不做任何检查)
git branch -D 分支名
- 应用场景:某一分支没有完全合并,但确实不需要的时候
-
分支使用原则、流程
- master(生产)分支:主要分支,不会删《=====develop不断合并到其上
- develop(开发)分支,不会删《====feature不断合并到其上
- hotfix 修复bug,从master分支,修改内容分别合并到master、develop
-
冲突
- eg.改了同一文件同一行
- 合并提示:conflict===》在该文件中多个版本都被记录
- 处理
- 处理冲突文件冲突地方
git add
git commit
提交
远程仓库
常见的:github gitee gitLab
公钥:
-
生成公钥
-
- (在bash界面)`ssh-keygen -t rsa` - 一路回车 - =》 - 查看 `cat ~/.ssh/id_rsa.pub`
-
(网页)将公钥复制到 gitee-》设置-》安全设置-》SSH公钥
-
验证
-
(bash界面)`ssh -T git@gitee.com`
添加-》同步到远程
添加一个远程仓库
git remote add new_far_name(默认origin) ssh_url(gitee得到)
查看已有远程仓库
git remote
同步本地到远程
git push origin master
—》完整:git push [-f(强制覆盖)] [--set-upstream(推送到远端同时建立和远端分支的关系)] [远端名称[本地分支名] [:远端分支名](如: git push origin master:master)
---->如果已经建立当前分支和远端分支关联:
git push
clone
git clone ssh地址 [clone到本地的路径]
抓取 拉取
git fetch [remote_name] [ branch_name]
更新抓到本地,不支持合并,默认抓所有分支更新
git pull [remote_name] [ branch_name]
更新抓并且合并到本地=fetch+merge
解决合并冲突
产生:提交还未推的文件,对应的主线文件被其他人提交了==》先合并在提交
=》if(修改了同一行):=》冲突=》解决方法同 解决本地冲突
注意
Git Authentication failed for 终极解决方案
说明:
1.本文在观看《黑马程序员前端教程-版本控制Git》后完成
2.如有错漏,敬请指正