1、名词
- master: 默认开发分支
- origin: 默认远程版本库
- Index / Stage: 暂存区
- Workspace: 工作区
- Repository: 仓库区 (或本地仓库)
- Remote: 远程仓库
2、基本操作
配置级别
- -local (默认,高级优先):只影响本地仓库
- -global(中优先级):只影响所有当前用户的git仓库
- -system(低优先级):影响到全系统的git仓库
用户配置
git config --global user.name "sanqi" //用户名
git config --global user.email "@163.com" //邮箱
初始及本地仓库操作
git init //初始化仓库
git status //对状态的跟踪
status中有两个状态:内容状态和文件状态;
内容状态有三个区域:工作目录、暂存区、提交区;
文件状态有两状态: 已追踪和未追踪;
git add 文件名 //添加文件内容到暂存区(同时文件被跟踪)
git add . //添加所以文件
git add a b //把a和b存入暂存区
git add -p 文件名 //一个文件分多次提交 (没试过)
文件不想被跟踪,可以配置.gitignore配置忽略文件
git rm -- cached //仅从暂存区删除
git rm //从暂存区与工作目录同时删除
3、分支操作
- 克隆远程仓库
git clone 远程地址
- 克隆分支的代码到本地
git clone -b 分支名 地址
- 新建分支
git branch 分支名
- 查看当前所有分支
git branch
切换分支
git checkout 分支名
基于当前分支创建新的分支,并默认切换到新分支
git checkout -b 新分支名称
新分支推送到远程仓库
git push origin 新分支名称
本地分支和远程分支进行关联 (不关联,git pull会失败)
git branch --set-upstream-to=origin/新分支名称
删除远程某个提交
删除最后一次提交
1、回滚上一次提交
git reset --hard HEAD^
2、强制提交本地代码
git push origin master -f
删除指定commit 提交(非最后一次提交)
1、先查看提交日志,获取删除记录前一次提交记录ID
git reflog
2、rebase操作(rebase -i 一定是删除记录前一次提交记录的ID)
git rebase -i ID
3、解决冲突,强制推送到远程
git add .
git commit -m "new"
git rebase --continue
git push origin master -f
4、删除分支
首先先切换到别的分支
删除本地分支
git branch -d <local_branch>
删除远程分支
git push origin -d feature/test1