概述:
简介:
- Git 是一个开源的分布式版本控制系统,兼具项目备份、代码还原、协同开发、追溯问题源头等功能。相较于SVN这种集中式版本控制工具而言,Git无需中央服务器,没有全局版本号,完整性更高,同时也更敏捷高效。
工作流程:
-
简述:克隆Git资源作为工作目录,在其中添加或修改文件,在其他成员修改后可以更新资源并查看、提交,若发现错误,可以撤回提交进行再次修改。
-
主要命令:
- clone(克隆):从远程仓库中克隆代码到本地仓库
- checkout(检出):从本地仓库中检出一个仓库分支然后进行修订
- add(添加):在提交前先将代码提交到暂存区
- commit(提交):提交到本地仓库。本地仓库中保存修改的各个历史版本
- fetch(抓取):从远程库,抓取到本地仓库,不进行任何的合并动作,一般操作比较少
- pull(拉取):从远程库拉到本地库,自动进行合并(merge),然后放到到工作区,相当于fetch+merge
- push(推送):修改完成后,需要和团队成员共享代码时,将代码准送到远程仓库
-
主要分区:
- workspace:工作区
- staging area:暂存区
- local repository:本地仓库
- remote repository:远程仓库
常用命令:
基本配置:
git config --global user.name"用户名"
git config --global user.email"邮箱"
常用指令配置别名:
1.touch ~/.bashrc
2.在bashrc文件中输入
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
//用于输出提交日志
alias ll='ls -al'
//用于输出当前目录所有文件基本信息
创建仓库:
command | explain |
---|---|
git init | 初始化仓库 |
git clone | 拷贝一份远程仓库 |
提交与修改:
command | explain |
---|---|
git add/git add . | 添加文件到暂存区/所有文件 |
git status | 查看仓库当前的状态,显示有变更的文件 |
git diff | 比较文件的不同,即暂存区和工作区的差异 |
git commit(-m) | 提交暂存区到本地仓库(注释内容) |
git reset | 回退版本 |
git rm | 将文件从暂存区和工作区中删除 |
git mv | 移动或重命名工作区文件 |
git log | 查看历史提交记录 |
git blame | 以列表形式查看指定文件的历史修改记录 |
git reset --hard commitID | 版本切换 |
git reflog | 查看已经删除的提交记录 |
远程:
command | explain |
---|---|
git remote | 远程仓库操作 |
git fetch | 从远程获取代码库 |
git pull | 下载远程代码并合并 |
git push | 上传远程代码并合并 |
工作区、暂存区、仓库之间的转换:
- 如何让其中某类/个文件不受Git管理?
创建gitignore文件->touch .gitignore
在gitignore文件中写入文件名或者*+文件类型
分支:
command | explain |
---|---|
git branch 分支名 | 创建分支 |
git checkout | 切换分支 |
git merge | 合并分支 |
git branch -d 分支 | 删除分支 |
git checkout -b 分支 | 创建并切换分支 |
- 合并分支:将分支b2合并到分支b1中
- 切换到分支b1
- 输入git merge b2
- 删除分支:不能删除当前分支,只能删除其他分支
- 一些分支约定:
- master:生产分支、总分支,作为线上运行的应对对应的分支
- develop:从master创建,主要开发分支,完成后合并到master
- feature:从develop创建,完成后合并到develop
- hotfix:一般作为bug修复
- test:一般作为代码测试
- pre:一般作为预上线分支
Git远程仓库:(Github/GitLab/码云)
- 配置ssh公钥:
- 输入 ssh-keygen -t rsa,一路回车,生成成功
- 输入 cat ~/.ssh/id_rsa.pub查看密钥,将生成的长传代码复制到平台相应的栏框内即可生成成功
- 成功后可以输入 ssh -T git@gitee.com查看
- 指令
command | explain |
---|---|
git remote add [仓库名] [仓库地址] | 添加远程仓库 |
git remote | 查看当前远程仓库 |
git push [仓库名] [分支名] | 推送 |
git fetch [仓库名] [分支名] | 从远程仓库下载新分支与数据 |
git remote rm [仓库名] | 删除远程仓库 |
git clone [仓库地址] | 从远程仓库中克隆 |
git pull [仓库名] [分支名] | fetch+merge 将远端仓库的修改拉取到本地并进行自动合并 |
学习中遇到的问题及解决:
-
vi或vim编辑器的使用
-
两种模式:1.命令模式
2.编辑模式
-
保存文件:
-
按住Esc+o进入编辑模式
-
在编辑模式下完成修改
-
按下Esc进入命令模式
-
输入.wq,完成修改并退出
输入:q!,放弃修改并退出
-
-
-
使用git log后在底端出现冒号,无法继续使用
- 解决:这种情况是commit次数过多且窗口过小进入了观察模式,直接按q退出即可