实习一周多了,一直在啃代码,今天总算有机会亲手fix了一个超级小的bug。同时也第一次正式参与进了项目。
然而关于项目的发布和版本和并完全不会鸭,一直在出问题,觉得自己需要学习的还有很多很多,很多,嗯。
(一)本项目里使用到的git命令
这一部分是我在公司的项目开发中需要经常使用的git命令以及顺序(顺序非常重要,搞乱了就要reset惹,要出事故惹)。
首先,是一个至今我也比较迷惑的问题。
当我首先在git上clone了项目之后,通过npm run dev开启的运行界面运行的是服务器端的代码。这个好像是默认的吧。具体原理,我会搞明白了之后再写博客。嗯,我一定会再写的。我保证,我发四。
- 首先更改服务器ip为本地ip
需要退出登录,返回到登陆界面,然后将node:xxxx的位置用本机ip替换就ok了; - 然后使用git status命令来查看有改动的文件
git status
- 使用git diff 命令来查看每个文件具体更改了哪些地方
- 如果需要将改动进行保存,则使用git add "文件路径"的指令进行保存,全部保存使用 git add .的命令
- 如果不需要对改动进行保存,则使用 git check out "文件路径"的命令,同理也有git check out . 的指令
- 将改动保存到本地使用git commit指令
这里面会要求输入一些描述,按下ctrl+x进行保存 - 然后使用pull或者merge指令进行合并
git pull origin branch-2.3 - 最后push(对push到哪里需要很慎重)
git push origin mengyu-2.3 - 接下来是在gitlab上进行new merge request的操作,注意选择从mengyu-2.3提交到branch-2.3。之后如果没有被合并,再进行代码的修改也会自动更新到mengyu-2.3上。
git cherry-pick是选择其他项目中可以用的一些文件
git reset是版本回退
(二)代码之前必做指令pull
今天要写一个小的需求,然而于是我就需要进行版本合并。
然而在我使用了pull命令之后,发生了冲突。然而我又不会手动更改冲突。
于是,我找到了一条命令可以用来强制使用远程库的代码来覆盖本地库的代码。
git reset --hard FETCH_HEAD
git pull
(三) clone之前检查分支
在进行clone之前,需要进行分支检查,确定自己下载的分支是需要的分支,避免下错代码
查看分支:
git branch -vv
切换分支
git checkout -b 我的分支名字 需要切换到的分支名字
//例如
git checkout -b mengyu-2.3 origin/branch-2.3
如果本地已经对代码有了改动,则需要首先将代码的改动给进行保存
git checkout .
clone之后需要删掉之前的包
git checkout -b mengyu-2.3 origin/branch-2.3
然后重新安装需要的包
yarn install
这里又有一个问题,就是如果我从master切换到了branch-2.3,就会有一个很大的文件,造成我最后合并的时候有300+个change。因此需要删掉这个文件。忘记叫啥了。
(四) 版本切换的方式
如果我现在在branch2.3的分支上进行需求添加,例如今天做的,只是小小的练习的一点“微小的工作”,但是现在需要让我在master上进行开发,我又希望能够保存这次练习的代码,又不想影响下一次在branch-2.3上的开发,同时还需要满足boss的需要,在master上完成今日的任务,小张不禁陷入了沉思。
1、首先需要对现在的代码进行保存,但是不能commit到不本地。
git status
git stash
下次需要用的时候,直接从stash里面拉出来用
stash apply
接下来就是分支切换的内容了
如果本地没有master的分支,则首先需要从远程仓库进行分支的获取
git checkout -b mengyu-master origin/master
如果有了分支,则只需要进行分支的切换即可
git checkout mengyu-master
当然,如果从branch2.3切换到了master,则需要将原来的node_module删掉,dll删掉
rm -rf node_modules/ dll/
然后重装依赖
yarn install
如果从master切换到branch-2.3
首先需要使用git status指令查看发生改变的文件,这里是:
.awcache/
但是由于这是一个隐藏文件,因此并不能手动找到并删除。
这时候可以使用这样的指令进行删除操作:
rm -rf node_modules/ dll/
然后需要删除node_module文件和dll文件:
rm -rf node_modules/ dll/
这里有一个小技巧,使用tab键可以自动补全。
然后重新
yarn install
一下
这是由于2.3和master(包括2.4及以上的版本)之间存在依赖的差异。2.3使用的是github上的依赖,而其他是内网。不同网络之间进行切换需要删除node_module和dll,但是内网的版本之间进行切换就不需要了,只用yarn install一下就好啦