1.最常用的流程
git pull origin 远程分支名
每次要执行push操作之前最好都拉取(pull/fetch)一下代码(良好习惯从我做起,耶~)
git add .
git commit -m '备注信息'
git pull origin 分支名
git push origin 分支名
注:有些公司会让在commit后加-n(--no-verify),跳过git钩子检查,防止屎山代码提交不上去(bushi);但是最好不要加,这种检查会提前消除一些bug隐患贝贝们~
如果你还不想push代码,只是想pull最新的代码
直接用git pull,如果没冲突会成功更新,到时候再恢复更改达到更新效果;
有冲突会提示冲突的文件,可以暂时在本地仓库撤销对应文件更改,再拉取代码;
临时需要切换分支
使用stash暂存未提交的修改,清空工作树然后就可以拉取代码了,再使用stash apply/pop恢复工作树继续迭代(推荐这个)
注意:此行为不会更新未提交文件的代码,因为你存了之后又恢复,把拉取的对应文件最新的代码给覆盖了
git stash //暂存未提交的修改
git stash apply //将暂存的修改重新应用到当前分支上,也可以用git stash pop
如果你想拉取不同分支(小提示:先拉取该不同分支对应远程分支最新代码)某一相对路径下的js文件(src/...)更新覆盖到对应的本地文件中(需要迭代功能相似的模块,偷懒小技巧),可以使用checkout
git checkout 分支名 相对路径 //例如 src/component/index.js
当多人共同协作时,程序员需要进行单独开发合并到一个分支上,遇到合并冲突需要协商调整;
1合并操作时,把自己分支的代码push到远程仓库
2再切换到主分支上,pull更新一下主分支代码:
git checkout dev
git pull
3用merge合并分支代码,确认没冲突后再push到远程主分支上
git merge dev-feature
git push
2.新建分支开发
首先更新一下分支数据
git fetch --all
(1)如果有现成的分支直接执行一下代码就可以切换到指定分支;
(feature_develop为我自定义的分支名)
git checkout feature_develop
然后再拉取一下代码,获取最新的代码;
(一般地,本地分支和远程分支同名,防止不必要的问题)
git pull origin feature_develop
(2)如果没有现成的分支,则要新建一个分支
1.创建并切换分支(远程仓库没有该分支)
git checkout -b feature_develop
执行之后会基于当前分支创建一个新分支(feature_develop)并切换到该分支
推送到远程仓库
git push origin feature_develop
2.创建并关联远程分支(远程仓库有该分支)
git checkout -b feature_develop origin/feature_develop
将分支推送到远程仓库,在远程仓库新增了一个feature_develop分支,并设置为跟踪分支,这样就可以在一个独立的新的分支上迭代了;
(注意:如果遇到以下报错,根据提示信息便可解决:)
编辑
git push --set-upstream origin feature_develop
3.拉取其他分支部分代码
在开发生态项目(生态就是第三方内嵌我们的产品)时,经常会复用其他分支代码,有现成的干嘛不用,我们可以用checkout拉取分支代码(偷懒大法:善于利用资源,提高效率):
git checkout 分支名 src/...(相对路径)
相对路径的指向可以是文件夹名或者具体的文件名(js/css/less/ts...),文件夹结尾就相当于把当前文件下的所有内容全部拉到本地仓库内,文件名就是拉单个文件进去,保存路径就是相对路径;
拉取其他分支的部分commit
git cherry-pick [commit-hash]
注:commit的hash值可以到目标分支用git log找到
4.查看分支
记不清分支名了嘎嘎好使;
git branch //查看本地分支
git branch -r //查看远程分支
git branch -a //查看本地分支+远程分支
5.删除分支
如果你想删除本地分支和对应的远程分支可以这样
注意:一定要在别的分支上操作要删除的分支
查看分支(copy分支名)
git branch -a
删除本地分支
git branch -D branch_name
删除远程分支
git push origin -d branch_name
报错及解决
(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查看分支名然后复制+粘贴分支名避免拼写错误)
编辑