Git
前置
-
Linux 要会一些常用命令
-
git 目录是隐藏文件 ll -A 查看
-
ll .git/ 查看
-
.git目录仓库说明
- hooks目录:脚本文件的目录
- info目录:保存了不希望在.gitignore文件中管理的忽略模式的全局可执行文件
- logs目录:日志目录
- object目录:存储所有的数据内容
- refs目录:存储指向数据分支的提交对象的分支
- config:文件包含了项目特有的配置选项
- description:文件仅供GitWeb程序使用
- Head文件指向当前分支
-
初始化本地仓库
- git niit
设置签名信息
-
git config user.name xxxname
-
git config user.email xxxemail
-
注意:签名信息全部保存在.git/config⽂件中
这⾥的签名信息和登录远程库的账号和密码没有任何关系,例如码云 GitHub账号
-
-
系统级别的设置
-
git config --global user.name xxxname
-
git config --global user.email xxxemail
-
注意: 系统级别的账户保存在系统⽬录下 例如 win:/c/Users/Administrator
-
优先级
- 就近原则:项⽬级别优于系统⽤户级别
- 如果只有 系统⽤户级别的签名,则采⽤系统⽤户级别
- 两者必须存在⼀个,都不存在不允许
-
-
查看工作区的状态
-
git status
- 空仓库会提示 On branch master No commits yet
- 当有新文件会提示:Untracked files
- 修改过暂未提交的文件:modified xxxname
添加到暂存区
- git add filename
从暂存区恢复(不提交到暂存区)
- git rm --cached filename
提交到本地仓库
-
git commit -m "提交说明信息" filename
- 简要的填写关键的提交信息
查看项目的历史版本
-
git log 遵循后进先出顺序
- git log --pretty=oneline 漂亮的格式显示
- git log --oneline 以简约格式显示
可回滚版本步数查看
- git reflog 显示回滚版本步数,HEAD@{底层回滚到此版本需要的步数}
进退到某个历史记录
-
git reset --hard <索引值>
- 此命令也可以前进到某个记录
-
git reset --hard HEAD^
- 仅仅可以后退,⼀个^表示后退⼀步,⽽n个表示后退n步
-
git reset --hard HEAD~n
- n指定步数,表示后退n步
删除、恢复文件
-
rm filename
- 注意删除⽂件之前,此⽂件需要已经被提交到本地库,才可恢复,如果尚未提交到本地库,则⽆法恢复
-
git reset --hard 索引值
- 注意必须提交到本地库之后删除才可以恢复,否则⽆法恢复
对比文件差异
-
git diff filename
- 将⼯作区中的⽂件与暂存区⽂件进⾏⽐较
- +表示添加的内容,-表示缺少的内容
-
git diff <索引值> filename
- ⽐较⼯作区中的⽂件与之历史记录
查看本地仓库的所有远程库
- git remote -v
创建远程地址库别名(建立连接)
- git remote add 别名 远程地址
推送本地库到远程库
-
git push 远程库别名 分⽀名
- 在win系统下如果弹出对话框则填写远程库⽤户名和密码
克隆远程库
-
git clone 远程地址
-
作用:
- 可以完整的把远程库下载到本地
- 创建远程仓库地址别名
- 初始化本地库
-
A&Q 在本地与远程新建仓库并关联后,初次push可能会遇到问题,原因是因为远程仓库有⼀些⽂件⽽本地没有,通常是在远程建⽴仓库时有⼀些初始化⽂件⽐如
Readme License 等,并且直接 pull会提示 warning: no common commits,对于此类问题可以采⽤两种
解决办法
-
. git push -f 强制将本地⽂件推送⾄远程,这样会将远程仓库的已有的⽂件清掉
-
git pull origin master –allow-unrelated-histories 使⽤此命令告诉 git 允许不相关历史
合并 这样就能把远程⽂件拉取回来。执⾏此命令后会有⼀个提示,要求说明为何要讲两个不相关的分⽀合并,输⼊信息后保存即可。拉取完不同的⽂件之后再执⾏ git push -u origin master 命令即可push成功。
-
-
A&Q2:如果经理将克隆到本地的库进⾏修改之后,想再次提交到远程库,则需要受到总监的邀请
- 点击管理
- 选择所有
- 添加仓库成员
-
GIt本地工作区域
-
对于任何⼀个⽂件,对于Git来说,都只可能存放在三种区域:
- ⼯作区:表示⽂件刚刚新增或者被修改,但是没有被提交保存
- 暂存区:表示把已新增或者修改的⽂件,放到下次提交时要保存的清单中
- 本地仓库 :表示⽂件已经被安全的保存在本地仓库了
工作流
释义:
-
项目过程中多⼈协作,分⽀很多,虽然各⾃在分⽀上互不⼲扰,但最后都要把分⽀合并到⼀起。真实项⽬中涉及到很多问题,例如版本迭代,版本发布,bug 修复等,为了更好的管理代码,需要制定⼀个⼯作流程,这就是我们说的⼯作流(分⽀管理策略)
-
master主干分支
- 主要负责管理正在运行的生产环境代码,永远保持与正在运行的生产环境一样
-
hotfix 热修复
- 主要负责管理生产环境下出现的紧急修复的代码。从主干分支分出,修复后在合并并测试后再合并到主支,并回后视情况删除该分支
-
develop开发分支
- 主要负责管理正在开发过程中的代码,一般情况下是最新的代码
-
release预发布分支
- 较大的版本上线前,会从(develop)开发分支会分出(release)预发布分支,进行最后的集成测试。该版本上线后,会合并到主分支,当在生产环境运行一定阶段稳定后,可以视情况删除
-
feature功能分支
- 为了不影响较短周期的开发工作,把中长期的功能从开发分支(develop)独立出来,再开发完成之后合并到(develop)开发分支
\