- 打开电脑,进入项目代码,切换到开发分支 ```java git checkout 开发分支 git pull ``` - 如果还没有开发分支,切换到master分支,基于master分支拉取新的开发分支 ```java git checkout master git pull git branch dev_hatim_20191210 git push origin dev_hatim_20191210 git checkout origin dev_hatim_20191210 git branch --set-upstream-to=origin/dev_hatim_20191210 dev_hatim_20191210 git pull ``` - 代码写完,确认修改的内容,并提交代码且推送到远程git服务器,完成开发分支代码提交 ```java git status git add . git commit -m 'bug fix' git pull git push ``` - 开发分支代码提交之后,合并到release分支,等待Jenkins发版 ```java git checkout release分支 git pull git merge 开发分支 # 查看是否存在合并冲突,如果没有则继续推送到远程git服务器 git push # 如果存在合并冲突,解决完代码冲突之后 git add . git commit -m '代码合并' git push ``` - 切换到master分支打tag,准备生产环境发版 ```java git checkout master git pull git tag -a v1.0 -m '20191210发版' git push origin v1.0 git pull ``` - 当每期内容上线之后,远程服务器的release分支会被删除,自己本地的release分支需要手动删除 ```java git checkout master git branch -D release git pull ``` - 如果想删除自己git本地除了master分支之外的所有分支 ```java git checkout master git branch | grep -v "master" | xargs git branch -D # 或者按关键字删除 git branch | grep -E "关键字" | grep -v "master" | xargs git branch -D ``` - 如果想删除远程git服务器上自己之前创建的所有分支,按关键字删除,比如关键字:hatim ```java git branch -r| grep -E "hatim" | grep -v "master" | sed 's/origin\///g' | xargs -I {} git push origin :{} ``` - 如果发现自己提交错误,需要回滚代码 ```java git pull git log # 找到要回滚的commit的SHA码 git reset --hard commit的SHA码 # 如果这个commit已经push到远程git服务器了,则 git push origin HEAD --force ``` - 删除tag ```java # 删除本地tag git tag -d tag名称 # 删除远程tag git push origin --delete tag tag名称 ```