「这是我参与2022首次更文挑战的第1天,活动详情查看:2022首次更文挑战」
准备:git 配置SSH
- 查看有无配置:在文件夹下
C:\Users\用户\.ssh查看 - 生成SSH秘钥,执行命令之后不断Enter即可
ssh-keygen -t rsa -C 'git邮箱地址'
- 生成后在下图所示中查看
项目背景
项目分支有:master分支、test分支、develop分支、新需求分支,新需求分支以requirement为例,协同开发多分支项目目前遇到的问题主要有两个:
在错误分支上完成需求
本应该在requirement分支编辑的代码,在test分支编辑完成了,可执行以下操作恢复到requirement分支(以在VScode中操作为例):
-
把test分支更改的文件添加到暂存的更改里面:
- 选中需要更改或暂存的文件右键选择 stash change,弹出push stash弹框
- 在push stash弹框输入 "新需求误编辑到了test分支,需转移到requirement分支" ,就添加到了stashes中
-
切换分支到requirement分支
- 在requirement分支里面执行选中版本 "新需求误编辑到了test分支,需转移到requirement分支 "执行apply stash操作,在更改或暂存的更改里面就有相应的文件
-
删除掉不需要的statshes记录执行dorp stash操作
合并分支遇到的问题
合并分支时,有时候会发现自己合并错误分支,或者合并之后的文件不在需要了,直接放弃所有更改并不能回退到之前的版本,此时执行git pull命令会失败,失败报错:
> git pull --tags origin requirement
error: You have not concluded your merge (MERGE_HEAD exists).
hint: Please, commit your changes before merging.
fatal: Exiting because of unfinished merge.
恢复之前合并文件的一种解决方法:
// 只能在合并导致冲突后运行
git merge --abort
// 从冲突合并中重置时使用
git reset --merge
git pull
这样就可以进行后续的各种git操作了。