常用到的git操作
基础知识
四个分区
工作区:默认位置,最新修改所在位置
暂存区:当在工作区执行 git add .后将代码添加到暂存区,这时工作区和暂存区的代码一致
本地仓库:当执行 git commit 后将代码添加到本地仓库,这时工作区、暂存区和本地仓库一致
远程仓库:当在本地仓库执行 git push 后将代码添加到远程仓库,这时工作区、暂存区、本地仓库和远程仓库一致
使用技巧
如果是要开发新分支的话,一定要从 master 分支切出来一个新的分支,因为 master 上的代码都是已经上线了的
往公共分支(master develop 等)合并代码时推荐使用merge,尤其是在多人开发时
在公共分支上开发时,先把本地的代码 stash,然后 pull,在
stash pop
有冲突的话合并冲突一般在把代码合并到 master 之前,会把本地的 commit 进行整理,合并成一个 commit 或者多个,这样 master 就不会有过多的无用 commit
在往 master 合并代码遇到冲突的解决方案
可以先 checkout 到本地的 master 分支,pull 最新的代码,在 checkout 到自己的分支,然后 rebase master 分支,解决冲突,然后再次提交合并 master 的 merge request
常用命令
clone
将远程库克隆到本地库,默认会创建一个和远程库相同名称的目录,也可以手动修改
1 | # git clone <版本库地址> <本地项目目录名> |
add
将工作区的代码添加到暂存区
1 | # 将指定的文件添加到暂存区 |
commit
将暂存区的代码提交到本地库
1 | # 提交,会弹出编辑界面输入提交描述 |
remote
为了方便管理,每一个远程主机都需要有一个主机名(对应一个地址),remote 命令就是用来管理主机名的
1 | # 列出所有主机名 |
fetch
将远程库的更新取回到本地库
取回后的更新,在本地主机上要用‘远程主机名/分支名’的形式读取
fetch 只是将更新取回本地,不进行合并操作,可以手动进行合并,与‘远程主机名/分支名’进行合并
1 | # 取回所有远程库分支的更新 |
pull
取回远程仓库的某个分支,并与本地库的指定分支进行合并
git pull
相当于git fetch + git merge
,先将远程分支拉到本地,在与指定的本地分支进行合并
1 | # git pull <远程主机名> <远程分支名>:<本地分支名> |
branch
对分支进行管理
1 | # 建立追踪关系 |
push
将本地库的更新推送至远程库的指定分支
1 | # 命令格式与pull类似 |
rebase
和 merge 类似,也是用来合并代码的
1 | # 合并提交,将这个commitID后的所有提交进行合并 |
stash
保存未提交到本地库的修改
1 | # 保存当前修改,提交的描述信息自动生成 |
reset
diff
用来比较代码差异
1 | # 比较工作区和暂存区的差别 |
revert
cherry-pick
checkout
切换分支,创建分支(相当于先使用 branch 命令创建分支,在使用 checkout 命令切换到新分支)
1 | # 基于当前分支创建新分支,并切换到新分支 |
config
配置 git 的命令
1 |
status
查看状态
1 | # 基本使用 |