当前位置:   article > 正文

前端---vscode插件推荐及GIT一些问题操作说明(持续更新)_vscode git插件

vscode git插件

以前都是用sublime,最近开始使用vscode(v1.50.0),写一些心得记录一下

先安利一些自己使用的插件

TabNine这个插件,如果电脑配置ok,可以装一下(现在已经开始收费了…)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一些简单的操作

1.代码提交

  1. 点击源代码管理
  2. 填写此次提交代码的目的说明
  3. pull 拉取代码,本地与服务器端同步,如果有冲突请看下面解决方案
  4. commit 提交代码(全部提交或者其他)
  5. push 推送代码至远程版本库

3/4/5操作都在项目名称后面的三个小点里

疑问:
目前常用的防止冲突的提交方法是:要先commit,然后pull,然后再push,为什么要这样操作呢?

答:这个先 commit 再 pull 最后再push 的情况就是为了应对多人合并开发的情况,

commit 是为了告诉 git 我这次提交改了哪些东西,不然你只是改了但是 git 不知道你改了,也就无从判断比较;

pull是为了本地 commit 和远程commit 的对比记录,git 是按照文件的行数操作进行对比的,如果同时操作了某文件的同一行那么就会产生冲突,git 也会把这个冲突给标记出来,这个时候就需要先看看怎么保留代码了,然后再 git add && git commit && git pull 这三连,再次 pull 一次是为了防止再你们协商的时候另一个人给又提交了一版东西,如果真发生了那流程重复一遍,通常没有冲突的时候就直接给你合并了,不会把你的代码给覆盖掉

出现代码覆盖或者丢失的情况:比如A B两人的代码pull 时候的版本都是1,A在本地提交了2,3并且推送到远程了,B 进行修改的时候没有commit 操作,他先自己写了东西,然后 git pull 这个时候 B 本地版本已经到3了,B 在本地版本3的时候改了 A 写过的代码,再进行了git commit && git push 那么在远程版本中就是4,而且 A 的代码被覆盖了,所以说所有人都要先 commit 再 pull,不然真的会覆盖代码的

2.解决代码冲突问题
pull代码有冲突怎么办,可能会提示以下信息:
error: Your local changes to ‘c/environ.c’ would be overwritten by merge. Aborting.
Please, commit your changes or stash them before you can merge.
这个意思是说更新下来的内容和本地修改的内容有冲突,先提交你的改变或者先将本地修改暂时存储起来。

解决方案如下:
1.先将自己修改的内容存储到暂存区 git stash
Vscode操作方法:源代码管理 –> 更改 -> 点击右侧加号 “+”(暂存更改)
2.然后拉取代码 git pull
3.还原暂存的内容 git stash pop 此时会提示类似以下信息
“Auto-merging c/environ.c
CONFLICT (content): Merge conflict in c/environ.c

意思就是系统自动合并修改的内容,但是其中有冲突,需要解决其中的冲突。
4.解决文件冲突的部分
打开冲突的文件,会看到类似如下的内容:
git冲突内容
其中Updated upstream 和=====之间的内容就是pull下来的内容,====和stashed changes之间的内容就是本地修改的内容。碰到这种情况,git也不知道哪行内容是需要的,所以要自行确定需要的内容。可以‘采用当前修改’或者其他
解决完成之后,就可以正常的提交了。

3.创建新分支
1.新建分支
git branch 分支名

2.切换分支
git checkout 分支名

3.进行项目上传
git add .
git commit -m “提交的信息”
git push -u origin 分支名

通过vscode创建新分支:
1.选中要创建新分支的模块,点击左下角分支管理
2.在弹出的框内选择 “从…创建分支”
3.输入新分支名称,回车
4.再从弹出的框内选择源分支(个人理解:从这个源分支上再拉出来一个分支,即创建新分支,那么就会在这个源分支的基础上进行开发)
5.点击模块 “同步更改” 按钮(此时会变成一个云朵的图标,创建之前就类似刷新的那个图标)
6.本地和远程仓库就都会生成这个新分支,可以开始开发了

4.修改分支的名称
需要将分支name_old修改为name_new,执行如下步骤:
1.执行命令git checkout name_old切换到name_old分支,如果已经在这个分支下,可以不执行此步骤
2.执行命令git pull origin name_old将代码更新到和远程仓库一致
3.执行命令git branch -m name_old name_new将本地仓库的name_old的名称修改为name_new
4.执行命令git push origin --delete name_old将远程分支name_old删除
5.执行命令git push --set-upstream origin name_new将本地分支push到远程仓库

5.将分支代码合并到master上(其他分支同样适用)
假如当前分支名称为 test

1、首先在test分支上进行
git add .
git commit -m “test”
git push

2、切换到master上
git checkout master
git merge test
git push

6.git/gitlab新建远程分支后 vscode里看不到 (新建分支更新)

更新新的分支 命令如下:

项目根目录执行 git remote update origin --prune

7.git/gitlab切换到别的分支,暂时保存当前分支的修改(不进行add 和commit)的方法

正在开发一个项目的B分支,但是A分支发现一个bug需要处理,但是又不想把B分支的修改提交上去怎么办?

1.在B分支执行 git stash

这个时候就把B分支的修改内容暂时储存到本地了
(实际上本地有一个存储列表,可执行 git stash list 查看,刚才的存储内容其实就在列表的最后一项,如果这个时候执行 git stash pop 就会把刚才存储的内容恢复)
(注意:1. git stash 不存储新增的文件夹及文件,只存储修改过的、已删除的文件夹及文件;2.执行完 git stash 操作之后,不要执行pull操作,这里是我踩过的坑,因为有可能出现这种情况:你存储的文件里面,有一个文件被别人修改了,被提交到远程库里了,这个时候你pull到的就是别人修改过的内容,此时你再执行 git stash pop 操作就会报错,大概意思就是:你本地的文件已被修改过了,和stash的文件内容不一致,无法pop,请commit本地文件之后再操作)

2.如果A分支处理好了,切到B分支,再执行 git stash pop ,之前修改过的内容就恢复了

8.git上传如何忽略node_modules
在项目的根目录,右键选择 Git Bash 进入命令行;

在命令行输入:
touch .gitignore

在生成的.gitignore文件里输入你要忽略的文件件及其文件即可。
node_modules/ 表示过滤这个文件夹
*.zip 过滤zip后缀文件
demo.html 过滤该文件

配置规则:
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符;
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录。
git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效。

9.解决Git报错:error: You have not concluded your merge (MERGE_HEAD exists).

错误可能是因为在你以前pull下来的代码没有自动合并导致的.

解决办法一:保留本地的更改,中止合并 -> 重新合并 -> 重新拉取
$:git merge --abort
$:git reset --merge
$:git pull

解决办法二:舍弃本地代码,远端版本覆盖本地版本(慎重)
$:git fetch --all
$:git reset --hard origin/master
$:git fetch

通常情况下方法一用到的最多

Git fetch和git pull的区别:
都可以从远程获取最新版本到本地
1.Git fetch:只是从远程获取最新版本到本地,不会merge(合并)
2.Git pull:从远程获取最新版本并merge(合并)到本地
实际工作中,可能git fetch更好一些, 因为在merge前,可以根据实际情况决定是否merge

参考以下链接:
http://stackoverflow.com/questions/11646107/you-have-not-concluded-your-merge-merge-head-exists

http://yijiebuyi.com/blog/5b55eb51ad49ce41e2de9c85dd4513ca.html

http://blog.csdn.net/hudashi/article/details/7664457

10.git Submodule Update 报错

报错:
git.exe submodule update --progress --init – “xxxxxx”
error: pathspec ‘xxxxxx’ did not match any file(s) known to git

意思是:
git.exe 子模块更新 --progress --init – “xxxxxx”
错误:pathspec ‘xxxxxx’ 与 git 已知的任何文件都不匹配

解决方案
控制台执行 git submodule add -f http://xxx/xxx/xxx.git src/utils
然后执行 git submodule init

其中:
git submodule add -f 模块在代码库里的地址 模块在项目本地的路径

11.git 两分支之间部分文件合并
A 分支上有 a\b\c 三个文件需要合并到 B 分支上

执行 git checkout B 切换到 B 分支上
执行 git checkout A a的路径 b的路径 c的路径

B 分支里面就可以看到已合并

12.获取远程分支信息
如果分支信息显示不全或者不显示,执行这个命令拉取分支信息
git remote update origin --prune

13.将主干代码同步到子分支上
两种操作方式,任选其一即可:
一、通过命令行执行
1.切换到本地的仓库,更新为最新的代码。
2.切换到要同步的子分支上。
3.在子分支上运行 git merge master 就会将主分支的代码同步到子分支上。

二、通过vscode操作
1.切换到本地的仓库,更新为最新的代码。
2.切换到要同步的子分支上。
3.选择 “分支 -> 合并分支”,如图所示:
在这里插入图片描述
4.从弹出的窗口中选择 master 即可,如图:
在这里插入图片描述

14.vscode git 拉取时 提示:在签出前,请清理存储库工作树

有两种方法解决:

一,手动解决
1、git stash (这一步的作用是把当前未提交的修改暂存起来,让仓库还原到最后一次提交的状态。)

2、git pull (拉取远程仓库的代码,让你现在的代码和远程仓库一致)

3、git stash pop (恢复第一步储存起来的代码,也就是恢复当前未提交的修改)

二、放弃本地修改,直接覆盖(一般情况下不建议这样)
1、git reset --hard

2、git pull

15.git撤销提交

一、Git撤销上次提交指令
Git撤销上次提交可以使用以下两个命令:
git reset HEAD~1
git reset --soft HEAD~1
其中,git reset HEAD~1会将HEAD指向上一个提交,即将最新的提交撤销掉,并且撤销后的修改全部放回工作区。而git reset --soft HEAD~1则不会将修改放回工作区,而是将修改保留在缓存区。

二、Git撤销上次提交记录
如果需要撤销多次的提交记录,可以使用以下命令:
git reset HEAD~n
其中,n表示要撤销的次数。其实现原理和上一个小标题所述的命令类似,只是多撤销了几次提交记录。

三、Git撤销上次提交的代码
如果只需要撤销某个提交记录中的某个文件(或者几个文件)的修改,可以使用以下命令:
git reset HEAD filename
其中,filename是需要撤销修改的文件名。

四、Git如何撤销上次提交到缓存区
如果上次提交已经放到了暂存区(缓存区),那就需要用到以下命令:
git reset HEAD
这个命令会将缓存区的修改全部撤销掉并且放回工作区。

五、Git撤销上次提交删除的文件
如果上次提交将某个文件删除,而现在需要恢复它,可以使用以下命令:
git checkout HEAD filename
这个命令会从HEAD指向的提交中获取filename文件的最新内容,并将其放到工作区中。

六、Git撤销commit命令
如果只是需要撤销commit命令,而不需要撤销上一次的修改,可以使用以下命令:
git reset --soft HEAD^
这条命令将会把当前HEAD指向的commit撤销掉,但是保留所有修改到暂存区。

七、Git撤销提交
如果通过git add将修改加入暂存区,但是没有提交,可以通过以下命令将修改撤销回来:
git reset HEAD filename
其中,filename是需要撤销修改的文件名。

八、Git撤销某次提交
如果需要回退到某个提交,可以使用以下命令:
git reset commit_id
其中,commit_id是需要回退到的提交的ID号。

九、Git撤销本地提交
如果在本地库中已经提交,也可以使用以下命令将修改撤销回来:
git revert commit_id
其中,commit_id是需要被撤销的提交ID号。这个命令会创建一个新的提交,撤销之前的提交。

十、Git清除本地缓存(如果.gitignore文件不生效,可参考此项)
.gitinnore文件不生效原因:原因是因为在git忽略目录中,新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,
这时候我们就应该先把本地缓存删除,然后再进行git的提交,这样就不会出现忽略的文件了。
git rm -r --cached .
**注意:**如果出现某某具体文件的HEAD指针有问题;则需要先移除此文件;
git rm --cached -f 文件路径
再进行重新执行上面的删除缓存操作命令;
然后执行 git add . 和 git commit -m ‘’

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/415614
推荐阅读
相关标签
  

闽ICP备14008679号