1. 查看当前配置有哪些远程仓库
git remote -v
输出结果例如: origin git@127.0.0.1:app/mdm-ui.git (push) 其中 origin 是默认的名称,这个名称可以自定义 “git@127.0.0.1:app/mdm-ui.git” 也可以换成http (https)开头的网址
添加一个指向主干仓库的远程库配置,例如名字叫 group
git remote add group git@127.0.0.1:root/module-ui.git
添加一个指向fork出来的远程库配置,例如名字叫 origin
git remote add origin git@127.0.0.1:fork/module-ui.git
移除一个本地的仓库配置,例如移除origin
git remote remove origin
2.拉取远程分支到本地的流程
git checkout -b dev group/dev 拉取主干仓库的dev分支
git checkout -b dev origin/dev 拉取fork仓库的dev分支
3.本地分支 之间的 切换
git checkout 分支名
4.本地代码提交流程 (以dev分支为例)
git add . 加入到缓存
git commit -m '备注信息' 提交到本地仓库
git push origin dev (push 到fork出来的远程仓库)
git push group dev (push 到主干远程仓库)
注: 多人开发时最好是每个人都fork出来一个自己的远程仓库,原则上每个分支都要先push到fork出来的远程仓库上,如果没有fork仓库那就直接 push 到主干分支上
5.合并代码流程
场景:如果自己开发需求的分支名字是 ‘branch1’;测试分支是 ‘dev’;现在要将主干仓库的branch1 合并到 测试分支dev上;
步骤:
1:本地切换到dev分支,首先要先运行下git pull group dev 先把别人开发的代码同步到本地
2. 运行 git pull group branch1 (pull 操作会自动进行merge)
3. 步骤2如果没有冲突那就可以直接运行 git push origin dev 或者 git push group dev,如果有冲突
那就先解决冲突,然后就再走一遍代码提交流程 (即 add,commit,push)
6.放弃文件更改
情况一:未使用 git add 缓存存代码时
放弃单个文件修改; 注意不要忘记中间的"--",不写就成了检出分支了!
首先可以运行 git status 查看更改的文件 例如更改的文件路径是 ‘src/app/index.vue‘
放弃index.vue的更改 git checkout -- src/app/index.vue
放弃所有的文件修改
git checkout .
情况二:已经使用了 git add 缓存了代码
git reset HEAD filepathname
例如 git reset HEAD src/app/index.vue
情况三:已经用 git commit 提交了代码
git reset --hard HEAD
此命令可以用来回退到任意版本:git reset --hard commitid
commitid可以在gitlab(gitee或者github)的提交记录上找 (慎用,最好不要使用到这种命令)
暂存和应用暂存
场景: 当正在A分支开发某个需求时,突然要在B分支改个bug或者开发需求,但是又不能把A分支的开发的代码还原,也不想commit和push到远程,这个时候就用到 git stash;
可以先将A分支改动的代码暂存起来 git stash push -u -m xxxx (xxxx就是备注信息,自己最好写一些清晰明了的备注信息)
然后就可以checkout到B分支进行开发
B分支的需求开发完后就可以checkout到A分支,然后将之前在A分支开发的代码再从暂存中拉出来继续开发,命令如下:
1.查看所有的暂存 git stash list (运行命令后输出的内容格式类型这样: stash@{0}: On develop: 备注 )
2. 应用某个暂存 git stash pop stash@{0} 0 是暂存list的index
此时就会恢复到A分支之前的代码改动状态,就可以继续开发A分支上的需求