git
在项目管理时,常见方式,master为主线,开发任务阶段,从master创建个develo分支,多人都是基于develop,master和develop是长期存在的分支;每个人从develop分出新分支,譬如分支feat继续开发,新功能开发完,提交代码前,git fetch,获取远程端多分支的改动代码,也可以指定某个分支,因为同时可能其他人也提交了新代码,然后rebase到指定分支,譬如develop分支,修改了基线,,然后在push到远程服务器上;在gitlab发起merge request,指定某个人,进行review code,合并到develop,然后从基于develop分支,分出release分支,上线同时,讲release分支合并到master;
常出现的场景:
1、commit后,想修改提交的描述信息
若提交后,当前代码有改动:先进行换成改动代码,再修改,完成修改,再取出缓存;
方案一:先保存修改代码git stash,再去修改commit的信息,git commit --amend,按键i进入可编辑状态,修改描述, esc退出编辑状态,:wq保存,git log 查看修改信息,最后再执行git stash pop 取出当前修改的代码;
方案二:同理当前代码若有改动,保存当前改动代码git stash() ,在git操作区git:local changes,shelf ,切换到Log:all下,选中刚才commit,右击undo commit,进行修改,再重新commit,弹窗默认删除Local Changes,最后最后再执行git stash pop 取出当前修改的代码;
若是提交后,没有代码改动,省去上面的git stash和git stash pop操作,直接修改操作即可;
2、当本地commit A,然后也push到远端,突然想修改A-描述信息,
方案一:可以选中A的上一次提交,reset,重新commit,修改描述,最后push(选中force push)即可;
方案二:push到远端后,发现代码有问题,改好后,想覆盖刚才提交的描述,再commit的时候,选中Amend commit,再commit,弹窗选中Amend commit,最后push的时候,force push即可
3、多次提交的commit,想把多个commit进行合并,譬如以此commit A B C D E,想合并B到E,git reset到合并的上次commit 位置,即A,然后从新commit,在push到远端;
若是已经把多次commit,push到远端,reset 后,选中soft,从新commit,然后force push即可。