基础git命令
设置别名
1.打开用户目录,创建.bashrc文件
touch ~/.bashrc
2.在.bashrc中输入如下内容:
#用于输出git提交日志
alias git -log=’git log —pretty=oneline —all —graph —abbrev-commit’
#用于输出当前目录所有文件及基本信息
alias ll=’ls -a’
设置用户信息
git config —golbal user.name “shixutianqi”
git cinfig —global user.email “3383676293@qq.com”
查看用户信息
git config —global user.name
git config —global user.email
git init 创建一个.git的隐藏目录
git工作目录(除了.git文件的其它文件)下对文件的创建和修改会存在几个状态,这几个状态会随着我们使用git命令而发生改变
查看修改状态
git status
添加工作区到暂存区
git add 单个文件名|通配符
提交暂存区到本地仓库
git commit -m “注释内容”
查看提交日志
git log [option]
[option]
—all 显示所有分支
—pretty=oneline 将提交信息显示为一行
—abbrev-commit 使得输出的commitid更简短
—graph 以图的形式显示
版本回退
git reset —hard commitID
git reflog 看到已经删除的提交记录
添加文件至忽略列表
1.touch .gitignore 在Home目录创建.gitignore文件
2.vi .gitignore 在里面填写要忽悠的文件,支持通配符
Git分支
git分支常用命令
git branch //查看分支
git branch 分支名 //创建分支
git branch -d 分支名 //删除分支,需要做各种检查,不能直接删除当前分支,要切换到其它分支再删除
git branch -D 分支名 //删除分支,强制删除,不需要做各种检查
git checkout 分支名 //切换分支
git checkout -b 分支名 //创建一个不存在的分支并切换到该分支
git merge 分支名 //将分支合并到当前分支上,一般而言都是合并到master分支上
分支使用原则
几乎所有的版本控制系统都以某种形式支持分支,使用分支意味着你可以把你的工作从开发主线分离开进行重大Bug修改,开发新的功能,以免影响开发主线
master 生产分支
线上生产,主分支
develop 开发分支
作为开发部门的主要开发分支,开发完成后合并到master
feature/xxxx分支
从develop创建的分支,一般是同期并行开发,但不同时期上线创建的分支,分支上的研发任务完成后合并到develop分支
hotfix/xxxx分支
从master派生的分支,一般作为线上修bug用,修复完成后合并到master,test,develop分支
test 测试分支
代码测试
pre 预上线分支
预上线
Git远程仓库
常用的托管服务(远程仓库)
1.github(https://github.com/)
2.码云(Gitee - 企业级 DevOps 研发效能平台)
3.GitLab(The DevSecOps Platform | GitLab) 一般用于企业学校内部网,是一个仓库管理的开源项目,自己部署,比较安全
配置SSH公钥
生成公钥
ssh-keygen -t rsa
获取公钥
cat ~/.ssh/id_rsa.pub
验证是否成功
ssh -T git@gitee.com
Are you sure you want to continue connecting (yes/no/[fingerprint])?
填yes
操作远程仓库
git remote add <远端名称> <仓库路径>
和远程仓库进行对接
远端名称: 一般叫origin
仓库路径:从远端获取的URL
URL:统一资源定位符,是一个独特资源在Web中的地址,每个有效的URL都指向唯一的资源
git remote
查看远程仓库
git push [-f] [--set-upstream] [远端名称 [本地分支名][:远端分支名]]]
推送到远程仓库
-f: 强制覆盖云端的代码
-set-upstream: 推送到远端的时候建立和远端的关联,以后上传的时候直接git push 就行
远端名称: 一般叫origin
[本地分支名][:远端分支名]]:如果本地分支名和远端分支名一样,可以不写[:远端分支名]
git branch -vv
查看本地分支和远程分支的关联关系
git clone <仓库路径> [本地目录]
从远处仓库中克隆到本地
本地目录可以省略,会自动生成一个目录
git fetch [远端名称] [分支名称]
从远端仓库抓取,不会进行合并
git pull [远端名称] [分支名称]
从远端拉取,会将拉取来的更新合并到本地项目中,等同于fetch+merge
合并冲突问题
当两个分支都对同一个文件进行修改时,merge合并会发生合并冲突问题
解决方法:合并后手动打开这个文件,删除不想要的修改,保存想要的修改,再pull云端(可能还要add commit到本地仓库一次)
在IDEA中使用Git
.gitingnore文件可以使用插件.gitignore
IDEA常用操作界面
铁律:
切换分支前要先提交本地的修改