当团队进行协同工作时,应该设有专门的公共分支,如master为正式版本,releases或dev为测试版本分支,所有人基于某一个分支创建个人分支,进行开发工作。
假设dev为第一层测试开发分支,我将以dev作为起点建个人分支feature_v20210201_cjw。
新建一个项目文件夹:git clone 地址
切换至本地dev:git checkout dev
dev更新:git pull origin dev
建个人分支:git checkout -b feature_v20210201_cjw
推送新的个人分支:git push origin feature_v20210201_cjw
查看文件状态:git status
提交文件:git add .
git commit -m '提交的备注'
切换到本地公共分支:git checkout dev
下拉公共分支最新代码:git pull origin dev
切换回个人分支:git checkout feature_v20210201_cjw
改变代码基础:git rebase dev
如有冲突,解决冲突后:git add .
git rebase --continue
提交代码至自己的远端个人分支:git push origin feature_v20210201_cjw
如果这里推送报错,对比两边log日志后,一般都是强推:git push -f origin feature_v20210201_cjw
如果你有修改dev公共分支的权限,继续进行如下操作:
切换到本地公共分支:git checkout dev
合并代码:git merge feature_v20210201_cjw
提交代码:git push origin dev
查看提交日志:git log 刚才的提交记录必须是四个分支都有:个人分支、个人远端分支、本地公共分支、远端公共分支
如果你没有修改dev公共分支的权限,只能去新建gitee/github上新建Pull Requests,然后等待审查人通过。
如果远端分支dev被别人回滚,这时你的本地dev和远端dev的基底就不一样了,此时你应该在本地dev分支上进行回退,回退到一个合适的位置:
git log 查看日志,选一个合适的位置,复制commitID
git reset --hard commitID 回退(硬回退,不保留本地dev的修改)
git pull origin dev 再次下拉
注:
软回退:git reset -- soft commitID 会保留当前分支的修改
rebase和merge都不要带远端,都是从本地分支操作的,而这个本地分支要和远端分支保持一致
最近操作过的两条分支之间的切换命令:git checkout -