git基础
安装git
Windows
官网:https://git-scm.com/(很慢)
国内镜像:https://registry.npmmirror.com/binary.html?path=git-for-windows/v2.45.1.windows.1/
进入链接,一般选择 Git-2.45.1-64-bit.exe
点击安转包一路next,即可
Linux安装
# Git 的工作需要调用 curl,zlib,openssl,expat,libiconv 等库的代码,所以需要先安装这些依赖工具。
yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel
#下载git
yum update
yum install -y git
apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \
libz-dev libssl-dev
apt-get install -y git
配置
git config --global user.name "设置用户姓名"
git config --global user.email "邮箱"
#查看姓名、邮箱信息
git config --global user.name
git config --global user.email
#查看所有配置信息
git config --list
git config --system --list
git config --global --list
git config --local --list
设置常用命令别名
先在用户目录创建一个.bashrc文件
touch ~/.bashrc
在.bashrc文件中输入如下:
输出用户提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
用于输出当前目录所有文件及基本信息
alias ll='ls -al'
获取本地仓库
任意位置创一个文件夹
进入文件夹执行
git init
即可创建一个本地仓库(本质上就是创建了一个.git的隐藏文件)
基本操作
查看修改状态
git status
查看(暂存区、工作区)修改状态
添加到暂存区
git add 单个文件名\通配符
git add . //将当前目录所有修改加入暂存区
提交暂存区到本地仓库
git commit -m '注释内容'
版本回退
只要历史日志还在,即可任意切换版本
git reset --hard commitID
commit ID可用git-log或git log查看
如果clear了记录
可通过:
git reflog //查看历史记录
可查看删除的提交的记录
添加文件至忽略列表
当在该目录下,有的文件不想被git所管理时
可以添加一个名为.gitignore的文件
把不想被管理的文件列出即可。
branch分支
基本操作
git branch //查看分支
git branch -vv //查看分支详情
git branch -r //查看远程分支列表
git branch -a //查看所有分支(包括本地分支和远程分支)
git branch "分支名" //创建新分支
git checkout 分支名 //切换
#还可以直接切换到一个不存在的分支(即自动会创建)
git checkout -b 分支名
# 修改分支名
git branch -m "原来名" "修改名"
合并分支
一个分支上的提交可以合并到另一个分支
一般合并分支时,会添加–no-ff //作用时禁止快进是合并
详细请看这里:Git 合并时 --no-ff 的作用-CSDN博客
git merge --no-ff '分支名' #推荐
命令:
git merge 分支名成
删除分支
不能删除当前分支,只能删除其他分支
git branch -d b1 //删除分支时需做检查
git branch -D b1 //强制删除,不做检查
远程分支
git fetch #获取远程所有的最新信息,包括各个分支的更改
git merge origin dev #将远程的dev分支合并到当前本地分支
git push --set-upstream origin dev:dev #将本地dev分支的内容合并到远程dev分支,并且将本地dev分支与远程仓库的dev分支建立关系
解决冲突
当两个分支上对同一个地方进行修改,就有可能造成冲突;
解决冲突步骤:
- 处理文件冲突地方[需要手动解决]
- 将解决完冲突的文件存入暂存区
- commit提交到仓库
工作常见规范
- master:主分支
- develop:开发分支
- feature:
从devolop创建的分支,开发分支,开发完合并到devolop分支上
- hotfix:
从master分支派生出来的,一般作为线上bug修复作用,修复完成后,直接与master分支合并
其他分支:test等等
连接github或其他仓库
生成秘钥
ssh key
#生成ssh key
ssh-keygen -t rsa
ssh-keygen -t rsa -C "1343744987@qq.com"//github办好固定的邮箱
#获取ssh key
根据返回存放key的路径去找公钥
#复制公钥,粘贴到github相应位置
#检查连接
ssh -T git@github.com
添加远程仓库
复制github仓库SSH链接
git连接:
git remote add <远程名称> <仓库路径>
即:git remote add origin 链接 //origin为规范名称
- 查看远程仓库
git remote
- 推送到远程设备
完整:
git push [-f] [--set-upstream] [远程名称] [本地分支名称]:[远端分支名称]
//-f 为强制覆盖
#一般:
git push origin master
git push --set-upstream origin master //将master与origin相关联;之后可以直接 git push即可
#--set-upstream建立与远端分支的关联关系
clone远程仓库
如果有一个远程仓库,我们可以直接clone到本地
- 命令
git clone <仓库路径/链接> [本地目录] //本地目录为clone的位置;省略则为自动生成一个目录
git clone 与git pull区别
git clone
只要知道远程仓库网址即可clone,不需与之连接。
不需要提前创建仓库;在clone时会完整复制一个链接的仓库
git clone 一般时在第一次从远程仓库获取代码时使用
git pull
一般,git pull 用于更新本地仓库中的代码;会将远程仓库最新更改与我本地当前分支中;
git pull 需在我当前已有一个本地仓库,并且与远程仓库已连接的情况下;我想同步远程仓库的最新修改,就用此命令。
打标签发布
tag 中文我们可以称它为 标签。
简单的理解,tag 就是 对某次 commit 的一个标识,相当于起了一个别名。
例如,在项目发布某个版本的时候,针对最后一次commit 起一个 v1.0.100 这样的标签来标识里程碑的意义。
相关操作
#查看标签
git tag/git tag -l/git tag --list
#查看指定标签提交说明
git show 标签名
创建标签:
# 创建轻量标签
git tag 标签名
git tag 标签名 指定版本
#创建附注标签
git tag -a "标签名" -m "附注信息"
git tag -a "标签名" 指定版本 -m "附注信息"
删除标签
git tag -d 标签名
push到远程仓库
git push origin 标签名
# 推送所有标签
git push origin --tags
对于tag相关,更详细的可以看这个链接:https://blog.csdn.net/qq_39505245/article/details/124705850