一、基本概念
- 工作区workspace:本地项目存放文件的位置
- 暂存区index/stage:暂时存放文件的地方,通过 add 命令将工作区的文件添加到缓冲区
- 本地仓库repository:通常使用 commit 命令将暂存区的文件添加到本地仓库
- 远程仓库remote:通常使用 clone 命令将远程仓库代码拷贝下来,本地代码更新后,通过 push 托送给远程仓库
二、常见命令
分支管理
git checkout -b 分支名:创建并切换到新建分支
git checkout 分支名:从当前分支切换到其他分支
git checkout -b 本地分支名 origin/远程分支名:拉取远程分支并创建本地分支
git branch:查看本地分支
git merge 分支名:当前分支与指定分支合并
fetch 指令
通常来说,要将远程仓库内容更新到本地,就需要使用这个指令
- git fetch 远程主机名:将某个远程主机的更新,全部取回本地。一般来说,远程主机名默认是 origin
- git fetch 远程主机名 分支名:取回特定分支
- git fetch origin 远程分支名:本地分支名:取回特定分支,并拉取到本地分支
git pull origin 分支名 == git fetch + git merge
状态查询
git status:查看文件的状态
- Changes not staged for commit:工作区有内容,但是缓存区没有,需要 git add
- Changes to be committed:文件放在缓存区了,需要 git commit
- nothing to commit, working tree clean:将本地代码 push 到远端即可
git log:查看日志
文件暂存
- git stash save -a “message”:添加改动到 stash
- git stash pop:恢复改动
- git stash list:查看 stash 列表
- git stash clear:删除全部缓存
差异比较
- git diff:比较工作区与缓存区
- git diff --cached:比较缓存区与本地库最近一次 commit 内容
- git diff HEAD:比较工作区与本地库最近一次 commit 内容
三、整体流程
在最开始的时候git init创建本地仓库,需要链接本地与远程仓库,可以使用 https 或者 ssh 方式,根据开发文档配置好基本信息,并生成 SSH 密钥
日常的开发流程如下:
- git add .
- git commit -m “message”
- git pull --rebase origin 分支名
- git push origin 分支名
- 每次开发前都先拉一下代码,避免后期冲突过多:git fetch origin 分支名
- 执行命令前可以先查看一下状态:git status
- 遇到需要暂存修改的:git stash git stash pop