基本设置
- 安装完成Git之后,桌面右击选择Git Bash
- 设置用户信息
git config --global user.name "xxx" git config --global user.email "xxx@.com"
git config --global user.name git config --global user.email
- 为常用的指令设置别名(可选)
用户目录创建.bashrc文件(打开GitBash,执行touch ~/.bashrc)
文件中输入常用的命令:# 用于输出git提交的日志 alias git-log='git log --pretty=oneline --all --graph --abbrev-commit' # 用于输出当前没有目录所选文件及基本信息 alias ll='ls -al'
- 解决GitBash乱码的问题
打开GitBash输入:git config --global core.quotepath false
export LANG="zh_CN.UTF-8" export LC_ALL="zh_CN.UTF-8"
- 新建本地仓库:指定文件下右键打开GitBash输入:git init
- 基础操作指令:
git add : (工作区——>暂存区) :git add . (全部提交) 或者 git add xxxx
git commit :(暂存区——>本地仓库) git commit -m "注释内容" (查看状态时显示的操作)
查看修改状态:git status
查看提交日志:git log [option]
option:--all 显示所有分支
--pretty=oneline 将提交信息显示为一行
--abbrev-commit 使得输出的commitId 更简短
--graph 以图的形式显示 -
版本回退
git reset --hard commitID (ID可以通过git log 指令查看)
查看删除的记录:git reflog -
将文件添加至忽略列表:
创建文件 .gitignore文件——>touch .gitignore
编辑:vi .gitignore ——> i ——>*.(文件后缀)——>Esc——> :wq
分支
使用分支可以将工作从开发主线上分离出来进行重大的Bug修改、开发新的功能,以免影响主线开发。(HEAD指向谁 就是谁是当前分支)
- 查看分支:git branch
- 创建分支:git branch xxxx
- 切换分支:git checkout xxxx
- 创建并同时切换分支:git checkout -b xxxx
- 合并分支:进入主分支 输入git merge 分支名称
- 删除分支:git branch -d xxx 或者强制删除(修改的文件还没有merge到master上时会提示删除不了,这时候就要强制删除):git branch -D xxx
- 解决分支冲突:两个分支同时处理一行出现错误
Auto-merging file01.txt CONFLICT (content): Merge conflict in file01.txt Automatic merge failed; fix conflicts and then commit the result.
分支原则与流程
- master 分支为主分支,线上运行的就是master分支上的。
- develop 分支:开发部门的主要开发分支,如果没有其他并行开发不同时期上线的要求,都可以在此版本进行开发,阶段开发完成后,需要合并到master分支上准备上线。
- featuer分支:develop 创建的分支,一般是同期并行开发,合并到develop上。
- hotfix分支:master派生出来的分支,一般作为bug修复使用,修复之后需要合并到develop、test、master。
- 其他分支:test分支:测试、pre分支:预上线分支。
Git远程
常用的代码托管: GitHub 、码云、GitLab(自己搭建服务器进行代码托管:公司、学校机房),我们这里使用码云进行配置。
工作流程:
- 配置SSH公钥
ssh-keygen -t rsa;
不断回车,如存在公钥,将会覆盖掉之前的;
查看回去公钥:cat ~/.ssh/id_rsa.pub;
将公钥添加到码云中;
验证是否配置成功 ssh -T git@gitee.com - 操作远程仓库
连接远程仓库:git remote add <远端名称> <仓库的路径>;远端名称一般设置origin
查看远程仓库:git remote;
推送至远程仓库:git push [-f] [--set-upstream] [远程名称 [本地分支:远程分支]],例如:
git push origin master:master
-f : 强制推;
--set-upstream :将本地当前分支和远程某分支建立关系,以后每次push时指令为:git push,例如:git push --set-upstream origin master:master 之后每次切换至指定分支使用git push,查看分支联系:git branch -vv - 从远程仓库克隆:远程存在一个仓库,我们直接clone到本地:
git clone <仓库的地址> [本地生成的文件名] - 从远程仓库中抓取和拉取
抓取:git fetch [remote name] [branch name] 。 抓取到本地不尽兴合并merge
拉取:git pull [remote name] [branch name]。抓取并合并 fetch + merge - 远程冲突:先拉取远程仓库的提交,经过合并之后再推送到远端分支。
Idea配置Git
- 存在项目中创建本地仓库:
- 连接远程仓库:
- commit本地修改:
- push至远程仓库
- 分支操作:
- idea 常用Git操作入口
Terminal 变成 GitBash
指令速查: