IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> 使用VS Code管理Git -> 正文阅读

[开发工具]使用VS Code管理Git

使用VS Code管理Git

项目推送到远程仓库

推送前需要设置好全局git

git config --global user.name "GDUT-Kyle"
git config --global user.email "123*****@qq.com"

在github或gitee新建好远程仓库后,让本地仓库与其产生联系

# 没有本地仓库的情况下
mkdir vscode_git
cd vscode_git
git init
touch README.md
git add README.md
git commit -m "first commit"
git remote add origin https://gitee.com/zhao_jia_jun/vscode_git.git
git push -u origin master
# 已经存在本地仓库的情况下
cd existing_git_repo
git remote add origin https://gitee.com/zhao_jia_jun/vscode_git.git
git push -u origin master

使用vscode 打开项目:
在这里插入图片描述打开下面视图,添加一行文字## 测试提交
在这里插入图片描述点击+ ;相当于git add .
在这里插入图片描述如果点击单个文件的+,即仅添加该修改
在这里插入图片描述

点击打勾;等于git commit -m "备注信息";右边的箭头输入需要备注的信息。然后按Enter 确定。
在这里插入图片描述在这里插入图片描述
回车之后,然后我们可以看到。所有的修改的文件,均已经提交到缓存区。1变成了 0;
在这里插入图片描述撤销上一次commit:有的时候我们一不小心就git commit -m ‘commit message info’
解决办法,很简单,只需执行git reset HEAD~这条命令即可,即能保证你原本的修改还在,也能撤销本次提交失误。这种撤销上一次提交是比较好的,如果是版本回退的话也能解决这个问题,但是版本回退只适合于你本次提交并没有改动什么或者改动不大的情况。如果你改动太多,版本回退意味着着你需要重新复制一遍,当然了,解决这种问题的办法有很多,分支开发的方式也能解决这种问题。在vscode中的操作如下:
在这里插入图片描述提交到远程仓库;git push origin master
在这里插入图片描述到git仓库里面;查看。已经成功提交。
在这里插入图片描述

使用vscode解决冲突

在使用git的时候,经常会遇到冲突;这里简单的说明,如何使用vscode来解决冲突。
大家在提交代码的时候,一定要先拉取代码;不然就会造成冲突;

拉取代码 git pull origin master
在这里插入图片描述
我们在不同地方再拉去一次项目,然后分别在没有git pull的情况下在两个本地仓库中修改:
在这里插入图片描述
在这里插入图片描述
然后分别将两个仓库进行git push,提交到远程仓库的时候,这时候会报错
在这里插入图片描述
拉去远程代码,可以在vscode中查看冲突
在这里插入图片描述
然后可以选择保留哪一次更改:
在这里插入图片描述
合并完后重新commitpush上去。

忽略文件

在仓库目录下创建一个名为.gitignore的文件,列出要忽略的文件模式:

target          //忽略这个target目录
angular.json    //忽略这个angular.json文件
log/*           //忽略log下的所有文件
css/*.css       //忽略css目录下的.css文件
*.[oa]		// 忽略所有以.o或.a结尾的文件
*~			// 忽略所有以~的文件

文件.gitignore可以使用标准的glob模式匹配

  • 星号(*)匹配零个或多个任意字符;
  • [abc]匹配任何一个列在方括号中的字符;
  • 问号(?)只匹配一个任意字符
  • [0-9][a-z]等表示所有在这两个字符范围内的字符
  • 使用两个星号(*)表示匹配任意中间目录,比如a/**/z可以匹配a/za/b/za/b/c/z
# no .a file
*.a

# but do track lib.a, even though you're ignoring .a files above
!lib.a

# only ignore the TODO file in the current directory, not subdir/TODO
/TODO

# ignore all files in the build/ directory
build/

# ignore doc/notes.txt, but not doc/server/arch.txt
doc/*.txt

# ignore all .pdf files in the doc/ directory
doc/**/*.pdf

在使用git的时候会遇到这样的情况,我们生产的一些class或者target的目录,我不能提交,这个时候我们需要使用gitignore,但是有的时候虽然添加了,但是不起作用。

情况:开发过程中,我们自己会在gitignore 文件中添加一些忽略项,然而,每次使用git status 的时候都未列在 untracked里面,比如用IDEA 开发,.idea 文件夹添加到该文件,再提交还是会提示。

原因:新建的文件在git中会有缓存,如果某些文件已经被纳入了版本管理中,就算是在.gitignore中已经声明了忽略路径也是不起作用的,这时候我们就应该先把本地缓存删除,然后再进行git的push,这样就不会出现忽略的文件了。git清除本地缓存命令如下:

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

移除文件

  1. 从工作目录中手工删除文件,并且从已跟踪文件清单中移除该文件
rm file.md
git rm file.md

下一次提交时,该文件就不在纳入版本管理。如果删除之前修改过并且已经放入暂存区域的话,则必须要用强制删除选项-f

  1. 我们想把文件从git仓库中删除(亦即从暂存区移除),但仍然希望保留在当前工作目录中。换句话说,文件保留在磁盘,但是并不想让git跟踪。可以使用.gitignore,也可以使用--cached
git rm --cached file.md

取消暂存的文件

如果我们已经使用git add file.md暂存了新的修改,但是后来发现该修改仍存在问题,需要撤销,则可以使用取消暂存操作:

git reset HEAD file.md

在vs code中的操作如下:
点击+暂存修改
在这里插入图片描述
查看git status
在这里插入图片描述
点击-撤销暂存:
在这里插入图片描述
查看git status
在这里插入图片描述

commit补充文件

有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。此时,可以运行带有--amend选项的提交命令尝试重新提交:
例如:

git commit -m 'initial commit'
git add forgotten_file
git commit --amend

最终只会有一个提交,第二次提交将代替第一次提交的结果。

分支创建

指令:

git branch testing

这会在当前所在的提交对象上(HEAD)创建一个指针。值得注意得失,当前仍然在master分支上,因为git branch仅仅创建一个新分支,并不会自动切换到新分支中去。

可以简单地使用git log命令查看各个分支当前所指的对象。提供这一功能的参数是--decorate
在这里插入图片描述
在vscode中创建分支的操作:
在这里插入图片描述
输入创建的分支名
在这里插入图片描述

分支切换

首先可以使用git log --oneline --decorate查看当前指向哪个分支:
在这里插入图片描述
要切换到一个已存在的分支,需要使用git checkout命令。现在切换到新创建的testing分支去:

git checkout testing

这样HEAD就指向testing分支了。

再次查看当前指向哪个分支
在这里插入图片描述
可以看出,当前HEAD指向testing分支。

可以使用一条指令同时完成分支的创建和切换:

git checkout -b testing

它是下面两条指令的简写:

git branch testing
git checkout testing

使用vscode完成分支切换的操作:
在这里插入图片描述
选择相应的分支即可(或者可以新建分支):
在这里插入图片描述
下面不妨做个实验,在分支稍微做些修改并提交:

首先切换到新创建的分支,加一行修改后,常规地进行commitpush
在这里插入图片描述
之后在远程仓库中可以看到有新的分支:
在这里插入图片描述

分支合并

这个时候如果突然发现master存在一个BUG,需要我们回过头去修复的时候,应该切换回master去:
在这里插入图片描述我们假设新建一个.cpp文件即可修复该BUG,我们可以先基于master新建一个分支hotfire,然后在该分支下新建文件:
在这里插入图片描述
解决该BUG后,我们需要发布修订版,就是把master指针挪到hotfire位置,也就是合并分支:

git checkout master 
git merge hotfire

vscode 中的操作如下:
首先切换回master下:
在这里插入图片描述选择合并分支:
在这里插入图片描述接着master下也多了一个hotfire.cpp了。

使用指令查看当前的分支图:

git log --graph --decorate --oneline --simplify-by-decoration --all

在这里插入图片描述由于当前master分支所指向的提交是当前提交(有关hotfire的提交)的直接上游,所以git只是简单的将指针向前移动。

现在关于hotfire的BUG问题已经解决后,我们应该先删除hotfire分支,因为我们已经不再需要它(master已经替代了它)——master分支已经指向了同一位置。

git branch -d hotfire

git fetch & pull的区别

git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。

git pull则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-09-06 11:21:26  更:2021-09-06 11:23:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/22 23:59:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计