通用的仓库结构
- 本地仓库:自己主机上的仓库(Local)
- 远程自己的分支:远程Git上,项目的个人分支(Remote-self)
- 远程Master:远程Git上,项目的最终稳定版本(Master)
提交缓存
- 将工作空间所有修改(包括内容修改和文件新建)提交到缓冲区
- 命令方式:git add -A
提交Commit
- 将当前修改的内容同步到自己的本地仓库Local
- 命令方式:git commit -m "修改说明"
提交Push
- 将本地修改内容同步到远程自己的分支Remote-self(前提必须先同步到本地local仓库)
- 命令方式:git push <远程主机名> <本地分支名> : <远程分支名>
- git push origin master_test : master
- 将本地的master_test分支推送到远程主机origin上的对应master分支
Submit Merge Requests
- 将Remote-self中的多次Commit合并提交到Master上,经管理员同意,你的提交就会正式成为Master中的更新。
- 如果审核发现有问题,自己可以主动撤销Submit;修改代码重新Commit到Remote-self,再Submit Merge Requests到Master
拉取Pull
- 在修改代码前,一般会Pull拉取当前最新版本的Master,保证别人提交到Master的代码你也已经获取,否则提交就会冲突
- git pull 相当于 git fetch + git merge
- Pull三种方式:
- fetch:获取远程其他分支的Commit,不会自动merge;
- merge:合并远程其他分支的Commit,再合并到我的分支的Commit后面
- rebase:将我的Commit合并在远程其他分支的Commit的后面
- 假设1-2-3是现在的分支状态
- 这个时候从原来的master,checkout出来一个prod分支
- 然后别人在master上已经提交了4/5,当prod提交6/7时
- master分支状态就是1-2-3-4-5,prod状态变成1-2-3-6-7
- 这里必须先Fetch获取远程其他分支的更新,prod获取到了4/5的Commit
- 如果在prod上用rebase,prod分支状态就成了1-2-3-4-5-6-7
- 如果在prod上用merge,prod分支状态就变成了1-2-3-6-7-8
- .......................................................................................................................|4-5|
- 多出来一个8,这个8的提交就是把4/5合并起来的提交
- 命令方式:git pull origin Master/
Checkout
- 创建新分支:git branch branchName
- 切换到新分支:git checkout branchName
网友评论