git VSCode 已有本地仓库同步到远程仓库

前言

读研啦,课题组里用 gitlab 进行每周工作的整理汇总,我也趁机巩固一下 git 与远程仓库的关联。

为了方便,我用的VSCode进行编辑,用 git bash 是一样的。

一. 建立本地仓库

通常来讲,我们一般会在本地先建立工作目录,然后在里面进行工作,过段时间后知后觉:哦?好像要把内容放到远程仓库。这时候目录里已经有很多内容了。

在这里插入图片描述

这个时候我们需要先建立本地的仓库,找到源代码管理,并初始化仓库(git init)。

在这里插入图片描述

之后的源代码管理可以进行 暂存更改(git add)和 提交(git commit)等操作。

如果你没有进行 提交,那后续的步骤会特别简单。

如果已经进行了 提交,那么本地的仓库便拥有了属于自己的 history commit,之后的同步会不一样。

二. 与远程仓库建立关联

我们找到要同步的远程仓库,如果没有的话,自己新建一个就好了。我这里用了一个 gitee 的仓库。

在这里插入图片描述

我们复制这个仓库的链接(克隆/下载 - 复制),并在源代码管理点击 远程 - 添加远程存储库,把复制的链接粘贴进去,选择 从 URL 添加,之后给远程仓库取一个有辨识度的标识就行了(一般取名叫origin

在这里插入图片描述

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

现在本地仓库和远程仓库建立了关联,我们点击左下角的分支名,能看到上方的选择框里有了远程的分支。

在这里插入图片描述

三. 拉取到本地仓库

回到之前那个话题:新建本地仓库之后有没有 提交.

1. 没有提交

那么这一步会很简单,只需要直接拉取远程仓库就可以了。

点击拉取,推送 - 拉取自,并选择远程仓库的那个分支即可。

在这里插入图片描述

之后我们切换到资源管理器,能发现远程仓库里的文件全都已经同步到我们本地的仓库了。

在这里插入图片描述

2. 有过提交

这个时候,直接拉取远程仓库会提示 fatal: refusing to merge unrelated histories。这是因为 拉取(pull) 会将远程分支与本地分支进行 合并(merge),而合并则需要一方为空(NULL),或者拥有相同的祖先节点。

没有提交的时候,本地分支为 NULL,可以合并;而提交之后,本地分支生成了自己的节点,因此与远程分支不可能拥有相同的祖先节点,从而不能够合并。

这个时候我们需要用到变基这个操作,原理简单来说就是改变历史,将远程分支插入到自己的历史中,从而拥有相同的祖先节点。

我们点击 分支 - 变基分支,选择远程的分支就可以了。

在这里插入图片描述

之后切换到资源管理器,也能发现远程仓库的文件同步到了本地仓库。

推送到远程仓库

现在我们本地仓库不仅有本地的工作文件,还拥有了远程仓库的所有文件,而远程仓库却没有我们本地仓库的工作文件,所以我们需要把本地仓库推送给远程仓库。

首先我们设置上游分支,在终端输入命令:

git branch --set-upstream-to [远程分支名]

在这里插入图片描述

之后在源代码管理中点击同步更改即可。

在这里插入图片描述

可以看到远程仓库的内容也更新了。

在这里插入图片描述

后记

写博客是一个很好的巩固过程,刚写完的我都比刚开始写的我拥有了更深的理解,只是每次写博客都要花几个小时,觉得有点耽误时间,所以不经常写。看来思考一下如何 解决问题/摆正心态 也是很有必要的。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值