【整理笔记】git实际应用

23 阅读6分钟

 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查看分支名然后复制+粘贴分支名避免拼写错误)

​编辑