引言
经常忘记Git怎么用,这篇文章梳理下Git的基本操作。
一、基本操作
- 从远程仓库克隆:
- git clone xxx(xxx是远程仓库的ssh/http)
- 完成本地仓库master分支和远程仓库master分支的关联,远程仓库默认名称是origin
- ls -A 可看到.git文件
- 创建并进入工作分支:
- 创建:git branch dev(dev是分支名)
- 切换:git checkout dev(dev是分支名)
- 在工作分支进行开发
- 提交工作分支代码:
- 提交修改到暂存区:git add .
- 提交修改到当前分支:git commit -m “修改说明”
- 解决冲突:
- 在本地master分支获取远程master分支最新代码:git pull origin master(相当于将远程分支代码合并到本地,本地的修改会保留)
- 在本地dev分支合并本地master代码:
- git merge master
- 出现冲突:手动解决冲突->git add .->git commit - m “解决冲突”
- 提交修改到关联的远程分支:
- git push origin dev(dev是与本地工作分支关联的远程分支名)
- 提交本地新分支的修改时,远程会自动创建新分支与之关联(也可提前新建远程分支)
- 删除分支:git branch -d dev(dev是本地工作分支名,一般不删除,不用的话可以删除)
- 状态查看:
- 查看当前状态:git status
- 查看修改内容:git diff
- 查看分支情况:git branch
- 查看远程库信息:git remote -v
- 查看提交历史:
- git log --graph
- 退出log:shift+q
- 说明:上述操作将本地工作分支代码提交到远程关联的分支,然后再将远程关联分支的代码合并到远程master分支代码即完成一次开发流程;
二、IDEA操作Git
三、原理说明
- 工作区和暂存区:
- 分支管理:master分支用来发布新版本,dev分支用来并行开发
- 分支实现:HEAD指针指向当前分支,master和dev分别指向两个分支的最新提交commit
- merge合并分支:feature1分支和master分支都做了新的修改,将feature1合并到master时,会将feature1做的修改合并到master上,如果两个分支对同一个地方做了修改,则发生冲突,需要解决冲突。合并后,master分支就有了feature1和自己分支所有的修改内容了。
- 提交历史log:?
四、其他
- 解决冲突(方法2):
- 在dev分支合并master分支:git rebase master
- 出现冲突:手动解决冲突->git add .->git rebase --continue直至解决完所有冲突