项目开发时有两个分支:master和develop,master。
master 作为一个稳定版分支,可用于直接发布产品;而我的日常开发则 push 到 develop 分支。
之前没怎么用分支,不知道怎么处理,感谢知乎网友Color的回答,在此记录一下收获。
1. 克隆代码
git clone https://github.com/myproject.git
2. 代码克隆下来后,默认本地创建了一个master本地分支,并且远程的master和develop远程分支也存在。
git branch 命令查看本地分支
git branch --all 命令 或 git branch -a 命令查看所有分支(本地+远程)
$ git branch
* master
# 这里的星号表示当前分支是master
$ git branch -a
* master
remotes/origin/HEAD -> origin/master
remotes/origin/develop
remotes/origin/master
# git branch --all命令的效果一样
master是本地分支,默认与远程master关联;
remotes/origin/develop和remotes/origin/master都是远程分支。
3. 创建与远程develop分支关联的本地分支develop
$ git checkout -b develop origin/develop
Switched to a new branch 'develop'
Branch 'develop' set up to track remote branch 'develop' from 'origin'.
# 该命令基于*下载到本地的remotes/origin/develop*创建一个本地develop分支,并且切换到本地develop分支
# 如果本地的origin/dev不是最新的, 那么创建的dev分支也不是最新的
4. 在本地develop分支上开发,执行add-commit-push,push后推到的是远程分支develop。
git add .
git commit -m "提交说明"
git push
5. 补充命令
git checkout master #当前在develop分支,可checkout切换到主分支master
git checkout develop #当前在master分支,可checkout切换到分支develop
git branch -d develop # 删除本地develop分支
git fetch origin master #从远程的origin的master主分支下载最新的版本到origin/master分支上
git log -p master..origin/master #比较本地的master分支和origin/master分支的差别
git merge origin/master #若比较后没发现问题,可以执行此命令:合并远程分支master到本地master
---------------------
git pull origin develop
# 从远程获取最新版本并merge到本地
# 相当于执行了git fetch origin master和git merge origin/master
--------------------------------
git push origin develop1:develop2
#推送本地develop1分支 到 远程origin仓库的develop2分支
#若远程分支不存在,则会在远程新建分支develop2分支
-----------------------------------
git merge develop #当前所在分支为非develop分支,如master分支
#合并develop分支到当前分支