1.最常用的流程
git pull origin 远程分支名
每次要执行push操作之前最好都拉取(pull/fetch)一下代码(良好习惯从我做起,耶~)
git add .
git commit -m '备注信息' -n
git pull origin 分支名
git push origin 分支名
注意commit提交至本地仓库时,命令末尾跟了-n,多人协作最好加上,可以避免git报一些乱七八糟的错(本地跑没报错,提交的时候报错,血淋淋的教训,~(>o<)~ )
如果你还不想push代码,只是想pull最新的代码,两条路
(1)仅add+commit就可以了,把代码保存在本地仓库(本人暂时推荐哈哈哈,随时反口~)
git add .
git commit -m '备注信息' -n
(2)git也给你提示了,使用stash暂存未提交的修改,清空工作树然后就可以拉取代码了,再使用stash apply/pop恢复工作树继续迭代
注意:此行为不会更新未提交文件的代码,因为你存了之后又恢复,把拉取的对应文件最新的代码给覆盖了
git stash //暂存未提交的修改
git stash apply //将暂存的修改重新应用到当前分支上,也可以用git stash pop
如果你想拉取不同分支(小提示:先拉取该不同分支对应远程分支最新代码)某一相对路径下的js文件(src/...)更新覆盖到对应的本地文件中(需要迭代功能相似的模块,偷懒小技巧),可以使用checkout
git checkout 分支名 相对路径 //例如 src/component/index.js
2.新建分支开发
首先更新一下分支数据
git fetch --all
(1)如果有现成的分支直接执行一下代码就可以切换到指定分支;
(feature_develop为我自定义的分支名)
git checkout feature_develop
然后再拉取一下代码,获取最新的代码;
(一般地,本地分支和远程分支同名,防止不必要的问题)
git pull origin feature_develop
(2)如果没有现成的分支,则要新建一个分支
创建并切换分支
git checkout -b feature_develop
执行之后会基于当前分支创建一个新分支(feature_develop)并切换到该分支
推送到远程仓库
git push origin feature_develop
将分支推送到远程仓库,在远程仓库新增了一个feature_develop分支,并设置为跟踪分支,这样就可以在一个独立的新的分支上迭代了;
(注意:如果遇到以下报错,根据提示信息便可解决:)
git push --set-upstream origin feature_develop
3.拉取其他分支部分代码
在开发生态项目(生态就是第三方内嵌我们的铲平)时,经常会复用其他分支代码,有现成的干嘛不用,我们可以用checkout拉取分支代码(偷懒大法:善于利用资源,提高效率):
git checkout 分支名 src/...(相对路径)
相对路径的指向可以是文件夹名或者具体的文件名(js/css/less/ts...),文件夹结尾就相当于把当前文件下的所有内容全部拉到本地仓库内,文件名就是拉单个文件进去,保存路径就是相对路径;
4.查看分支
记不清分支名了嘎嘎好使;
git branch //查看本地分支
git branch -r //查看远程分支
git branch -a //查看本地分支+远程分支
4.报错及解决
(1) 当迭代好一部分代码时,我们需要push一下到远程仓库,那么就有可能会出现以下报错,这就是我的血泪教训(一定一定一定要在push之前拉代码!!!!)
那么问题来了就解决呗,当然是pull一下啦,你以为这就结束了吗,nonono,那么请迎接新鲜报错,这里rebase-merge正在执行rebase操作
解决办法:
1)如果你已经把必要的rebase步骤完成了,可以直接把这个目录删了 (这是我的做法)
rm -fr .git/rebase-merge
2)也可以手动解决冲突,这是我认为较好的方法
git rebase --continue
处理好之后再拉取代码就能成功了,然后再push你的代码就可完成这次推送
(2) 这也不叫一个问题,从git给出的提示信息就可以解决,就是说远程仓库已更新(团队合作经常这样),与本地仓库不同步,git pull(可简写,此时本地仓库已关联远程仓库)一下就可以
(3)当你推送(push)出现如下报错时,就是远程仓库名错了,检查一下(通常直接git branch查看分支名然后复制+粘贴分支名避免拼写错误)