记录一下工作中使用git的几种场景,思路
1.通用
场景: 从零开始开发新功能-->发布测试-->测试完成--->合并master-->打包上线
- 从最新的master版本中拉取本地分支
git checkout -b [新分支]
- 提交改动
git add .
git commit -m "改动的提交"
git status
- 合并测试,测试完成
git checkout dev
git pull
git merge [新分支] 可能会有冲突,找到冲突文件,解决即可
git add .
git commit -m "改动的提交"
git status
git push
- 合入master.打包上线
git checkout master
git pull
git checkout [新分支]
git merge master 可能会有冲突,找到冲突文件,解决即可
git add .
git commit -m "改动的提交"
git checkout master
git merge [新分支]
git push
- Tips
每次合dev或者master,要保证其分支是最新的版本
每次改动完成,commit后,可以 git status 看一下当前版本的状态.是否有遗漏或者错误
2. 恢复误删分支
git log -g 查看commit id
git branch [新分支] commit_id
git checkout [新分支] 检查文件是否恢复
可避免: 尽量不要使用 git branch -D [分支]
,而是使用git branch -d [分支]
,因为当你分支有改动时,-d会提醒你有未合并的提交
3. master回滚以及强制更新远程
场景:代码发错了,但合到了master,且推送远程,需要回滚
git log -g 查看commit id
git reset --hard commit_id
如果使用的是gitlab,且master为保护分支,Settings->Repository->Protected Branches-->master改为unprotect
git push origin master --force
master改回protect
4.更新远程分支
git remote prune origin
5.如何发现和防止dev代码合入master
我们可以在dev上创建一个独特的文件或者文件夹(不影响项目),每次合入master时检查会不会带入这个文件,如果有,说明这个分支已经被污染了,然后再去找被污染的commit,回滚重新提交