1.Git环境配置
会用到的一些基本命令
- ls/ll 查看当前目录
- cat 查看当期文件
- touch 创建文件
- vi编辑器
1.1下载与安装
下载地址:Git - Downloads
Git GUI:图形化工具
Git Bash:命令行工具
安装好git首先要设置用户名和邮箱地址 因为每次使用git都会使用到用户名和邮箱
1.2基本配置
设置用户名和邮箱
用户名:git config --global user.name “用户名”
邮箱:git config --global user.email “邮箱“
查看设置好的用户名和邮箱
查看用户名:git config --global user.name
查看邮箱:git config --global user.email
1.3为指令设置别名
有时候指令的参数非常多 我们输入会很麻烦 所以我们会为别名设置指令
打开用户目录 创建.bashrc文件(创建不了的 使用git命令行工具 touch~/.bashrc创建)
在.bashrc输入
#用于输出git提交日志alias git-log='git log --pretty=oneline --all --graph --abbrev-commit' #用于输出当前目录所有文件及基本信息alias ll='ls -al'
1.4解决GitBash乱码问题
使用中文会乱码 所以要解决一下乱码问题
- 打开GitBash输入命令
git config --global core.quotepath false
${git_home}/etc/bash.bashrc 文件最后加入下面两行
export LANG="zh_CN.UTF-8" export LC_ALL="zh_CN.UTF-8"
2.获取本地仓库
- git init 初始化仓库 初始化完成会有一个.git文件夹
3.基础操作命令
3.1查看修改状态
- git status
3.2添加到暂存区
- git add 文件名
- git add .添加所有的文件到暂存区
3.3添加到本地仓库
- git commit -m '描述/注释内容'
3.4查看日志
- git log 查看日志
--all 显示所有分支
--pretty=oneline 将提交信息显示为一行
--abbrev-commit 使得输出的commitId更简短
--graph 以图的形式显示
- 可以使用别名的方式 输出日志
3.5版本回退
- git reset --hard '版本ID'
3.6忽略提交文件
创建指定文件.gitignore 里面写忽略提交文件名的后缀 例如:*.a 忽略所有.a文件
4.分支
4.1查看本地分支
- git branch
4.2创建本地分支
- git branch 分支名
4.3切换分支
- git checkout 分支名
还可以创建并切换分支
- git checkout -b 分支名
4.4合并分支
- git merge 分支名
4.5删除分支
- git branch -d 分支名 删除分支 做各种检查
- git branch -D 分支名 删除分支 强制删除
4.6解决冲突
当两个分支对同一个文件的同一个位置修改的时候就会发生冲突 解决步骤如下:
- 处理文件中冲突的地方
- 将解决完提交的暂存区
- 再将文件提交到本地仓库
5.Git远程仓库
5.1常用的托管服务
仓库分为本地仓库和远程仓库 搭建远程仓库 常用的有 github 码云 GitLab github服务器在国外 访问较慢 码云的服务器在国内 访问较快 在这里使用码云
5.2码云配置SSH公钥
生成SSH公钥ssh-keygen -t rsa不断回车如果公钥已经存在,则自动覆盖
Gitee设置账户共公钥获取公钥cat ~/.ssh/id_rsa.pub
验证是否配置成功ssh -T git@gitee.com
公钥的作用:使用SSH公钥可以让你在你的电脑和 Gitee 通讯的时候使用安全连接(Git的Remote要使用SSH地址)
5.3操作远程仓库
5.3.1添加到远程仓库
- git remote 远程仓库名称 远程仓库路径
5.3.2查看远程仓库
- git remote
5.3.3推送到远程仓库
- git push 远程仓库名称 master:master[远程分支名和master相同可以省略]
5.3.4本地分支与远程分支的关联关系
- git branch -vv
5.3.5从远程仓库克隆
- git clone 远程仓库路径 本地目录
5.3.6从远程仓库中抓取
- git fetch
- git pull
5.3.7解决合并冲突
当A B 同时修改了同一行代码 A先推送到远程仓库 B拉取一下 B再去推送的时候就会报错 解决步骤:
1.删除冲突的内容
2.重新提交推送