克隆分支代码到本地
git clone -b 分支名 地址
git命令提交代码
git add .
git commit -m "备注说明"
git push origin 分支名
分支代码被污染无法抢救的时候(进行cherry-pick)
1.从master重新创建新分支
2.将新分支克隆到本地
3.打开被污染的分支查看历史提交纪录
4.git cherry-pick 复制提交记录标识id
5.如果cherry-pick下来的代码有冲突(解决冲突)
解决完冲突
git add .
git cherry-pick --continue
eshsc :q 回车键
6.cherry-pick完所有需要cherry-pic的代码后
7.git push
分支代码被污染,本地代码正常
1.直接删掉分支代码
2.本地重新push
git push origin 分支名
如果代码合并出现冲突(例如A分支向B分支发起合并请求,B合并A时发生冲突)
1.把本地分支切换到要合并的分支B
git checkout B
2.pull该分支
git pull
3.pull完成后切换会A分支
git checkout A
4.rebase 将要合并到的分支
git rebase B
5.解决冲突
6.解决完冲突
git add .
git rebase --continue
7.继续rebase 将要合并到的分支
git rebase B
8.rebase所有代码完成之后
(idea)修改该分支名或者new Branch一个新分支
git push origin 分支名
(git rebase --abort回到rebase之前)
如果切换到B分支pull完后无法切回待A分支
1. git merge --abort
2.删掉本地B分支
(idea) 右键该分支名直接delete
3.删除完成后,重新checkout B分支进行git pull
git checkout B
git pull
本地未开发完,需要切分支
git stash 保存到本然后就可以切分支了
git status 比较分支
如果合并冲突,不想rebase可以进行git merge
A请求合并到B,出现冲突,可以使用A分支git merge b
本地idea合并分支,A合并到B
1.首先切换到B分支
git checkout B
2.然后B merge A
git merge A
3.终止merge
git merge --abort
本地分支和远程分支不同步,更新本地分支
git fetch
是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。
回退
git reset --hard 目标版本号
回退后git push失败, 提示说 remote 端的版本比我本地版本要高
git push -f 强推
删除远程分支
删除远程分支: git push origin --delete [branchname]
git查看提交者排名前N位
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5
git 本地修改未提交时切换分支
1.缓存本地变更 git stash
2.切换分支 git checkout dev
3.提取本地变更 git stash apply
git commit后没有push,回退并保留工作内容
git reset --soft 目标版本号(上一个push的版本号)
git提交规范
公式:<type>(<scope>): <subject>
1、type
用于说明 commit 的类别,只允许使用下面7个标识。
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
2、scope(选填)
用于说明 commit 影响的范围,比如数据层、控制层、视图层等等,视项目不同而不同。
3、subject
是 commit 目的的简短描述,不超过50个字符。
4、示例