git是什么
版本控制工具,可以帮助我们托管代码。类似于云盘,把我们的项目上传到git上,团队的人都可以从git拉取项目代码。
安装
https://git-scm.com/downloads ,git官网下载需要的版本,一路下一步安装即可
装好后,在电脑文件夹的任意位置右键,即可看到git相关的命令。
git bash是命令行工具
git gui是图形化工具
打开git bash后,输入git --version ,能正确输出版本号,则证明安装成功。
基本命令
配置用户名和邮箱
git config --global user.name ‘自己的名字’
git config --global user.email‘自己的邮箱’
local 只对当前仓库有效
global 所有仓库有效
system 对系统所有用户有效
查看配置
git config --list --local
git config --list --global
git config --list --system
清除
git config --unset --local user.name
git config --unset --global user.name
git config --unset --system user.name
创建仓库
进入要被托管的文件夹,执行
git init
添加文件至暂存区
git add 文件名
提交文件
git commit -m ‘描述’
查看git状态
git status
查看修改内容
git diff 文件名
修改文件名字
git mv 原文件名 新文件名
查看日志
git log
功能为查看日志
git log --pretty=oneline
查看日志,以单行显示
git reflog
功能为查看历史操作记录,比如回退版本后想要重返“未来”可以查看最新的提交版本
通过可视化工具查看提交信息
gitk
版本回退
git reset --hard head^
退回到上一个版本
git reset --hard 版本号
当知道对应的版本号时,可以用这个命令,适用于回退和前往之前的新版本
撤销操作
git restore 文件名
新版本git提示用该命令进行撤销
git checkout – 文件名
旧版本用此命令做撤销,新版本也可以用
如果已经add进暂存区
git restore --staged 文件名
新版本git用该命令
git reset head 文件名
此为旧版本git命令,新版本也可以用
删除文件
git rm -f 文件名
使用分支
查看当前分支
git branch
创建dev分支并切换过去
git checkout -b dev
-b表示创建并切换,相当于下面两条命令
git branch dev
创建分支
git checkout dev
切换分支
注意:上面是老版本的命令,创建分支和撤销都用checkout容易分不清,因此新版本创建分支推荐用
switch
git switch -c dev
创建并切换到dev
git switch dev
直接切换到已有的dev分支
合并分支
git merge dev
将dev分支合并到当前分支,合并后会丢失原来分支的信息
git merge --no-ff -m “merge with no-ff” dev
合并dev到当前分支,–no-ff表示禁用fast forwad,之后查看日志时是可以看到已被删除分支的信息
删除分支
git branch -d dev
git branh -D dev
如果dev没有被合并过用大写 -D
查看分支合并情况
git log --graph --pretty=oneline --abbrev-commit
stash的使用(bug分支)
git stash
保存当前的工作现场
git stash list
查看所有被保存的工作
git stash pop
恢复并删除工作现场,等价于git stash apply + git stash drop
开发环境在dev分支下,bug修复是提交在master中,如何快速合并至dev下:转移至dev分支下,执行下面命令
git cherry-pick bug分支的提交版本号
远程仓库(Github)
配置ssh秘钥
通过普通方式连接远程仓库,每次提交时都需要输入用户名密码,很麻烦。
所以这里为了后续提交方便,需要配置一下本地git和远程的ssh秘钥,这样以后提交就不需要手动验证了。
在本地执行以下命令生成秘钥,然后一路回车即可,默认生成的秘钥文件存放在用户目录下的.ssh文件夹下
ssh-keygen -t rsa -C “这里换上你的邮箱”
这里是生成好的秘钥,其中id_rsa.pub是公钥,这个需要配置到你的远程仓库上
这里以github为例,进入你的github,进入设置,找到ssh的配置
点击创建一个ssh秘钥,用文本编辑器打开id_rsa.pub,复制其中的内容到git上。标题部分自己随便起个名字即可
以后用git连接github的时候选择ssh连接
远程克隆到本地
git clone 自己的git项目地址
如果是本地没有项目,从远程往下拉项目则是克隆
关联
git remote add origin 自己的git项目地址
如果本地先建好了项目,那么执行这个命令将本地仓库与远程仓库关联
拉取远程的更新
git pull
第一和远程关联上之后,在提交之前要先拉去一下远程的更新才行
基本推送
git push -u origin master
第一次推送是要加上-u,可以把本地的master和远程的master关联起来,方便以后的推送或者拉取
git push origin master
之后推送可以直接用该命令
查看远程仓库信息
git remote
git remote -v
此命令可显示更详细信息
多人协作
git checkout -b 分支名 origin/分支名,在本地创建和远程分支对应的分支,名称最好一致
git branch --set-upstream-to=origin/dev dev,建立本地分支和远程分支的关联
git pull,先抓取远程的更新,如果有冲突,手动解决冲突
git push origin 分支名,解决冲突后推送
标签
基本操作
标签的作用可以简单理解为给版本起名字
git tag
查看所有标签
git tag 标签名
把当前分支的最新提交打上标签,标签名字自己起
git tag 标签名 对应commit版本号
把某个版本号的提交打上标签
git tag -a v0.1 -m “描述信息” 版本号
可以用这种方式给标签增加说明,-a对应标签名,-m对应描述信息
git show 标签名
查看标签具体信息
git tag -d 标签名
删除标签
推送标签
git push origin 标签名
推送某个标签到远程
git push origin --tags
推送所有标签到远程
删除远程标签:
git tag -d 标签名
先删除本地标签
git push origin: refs/tags/标签名
然后从远程删除
idea 连接github
1. 首先按照上面的教程安装好git
2. idea配置
file–settings–version control–git
把自己安装好的git的启动程序配置在这里,然后点击右边的test按钮,若能出现弹窗打印git版本,说明连接成功
点击github,添加账号。如果是连接码云,则点击gitee
这里输入用户名密码会报错,提示可以用令牌来登录,首先去github的设置里生成一个令牌,然后再来点击这里的红框处,把生成的令牌复制过来。
github生成令牌
打开设置,点击红框处
之后选择左侧菜单栏第三个,然后在右边生成令牌即可
上传项目到github
如下图,然后一路下一步即可。idea可以直接在github上创建一个项目,所以不用先在github上创建空项目
从github上拉取项目
git上设置多人合作一个项目
git上打开某个项目,进入项目设置
选择左侧的manage access,右边邀请用户进入本项目