当前位置:   article > 正文

Git教程 - 6 远程仓库_git 关联远程仓库

git 关联远程仓库

更好的阅读体验:点这里www.doubibiji.com

6 远程仓库

前面在学习的时候,都是在本地操作的,提交也是提交到本地的仓库,也就是在项目下生成的 .git 文件夹中。

在实际的开发中,都是多人协作开发,所以需要一个远程的仓库,这样每个人都往远程仓库推送代码和拉取代码。

结构是这样的:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

远程 Git 仓库和本地仓库没什么不同,只是远程仓库可以被多人访问。在实际的开发中, Git 远程仓库服务器一般由公司在内部搭建,或者购买一些公共的开放的 Git 服务器,例如 github 或 gitee(码云)。


下面我们演示一下 gitee 远程仓库的使用。

6.1 注册 gitee 账号

首先需要注册一个 gitee 账号,如果没有就注册一个。网址:https://gitee.com

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注册完成就可以登录,登录后就可以创建仓库了。

另外先绑定邮箱,这样可以用来在提交代码的时候,登录 gitee 来提交代码。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6.2 创建远程仓库

创建项目,填写信息。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这里建议不要勾选任何选项,否则可能会在仓库中生成一些文件,导致仓库不是空的,后面推送的时候会出问题,还需要特殊处理。


新建仓库后,会看到仓库有一个地址。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

这个就是仓库的地址。

6.3 基本操作

现在已经有了远程仓库,那么可以与远程仓库进行交互了。


1 关联远程仓库

首先需要将本地的仓库与远程仓库进行关联。

如果本地没有仓库,那么先在本地创建一个仓库。

还是之前创建仓库的步骤,例如我们本地的仓库已经新建好了。并在仓库中 新建了一个 1.txt,并添加了内容后,并提交到了本地仓库中。

现在要做的是如何将仓库与远程仓库关联,并将文件提交到远程仓库。


将本地仓库与远程仓库关联,在本地仓库下,执行如下指令:

git remote add origin https://gitee.com/doubibiji/hello-git.git
  • 1
  • git remote add 这个是命令,表示关联远程仓库;
  • origin 这个是远程仓库的别名,我们本地的仓库是可以和多个远程仓库关联的,所以后面与远程仓库操作的时候,通过别名就知道和哪个远程仓库进行交互了。一般情况下,只会与一个远程仓库关联,别名都叫 origin,因为我们后面执行 git push 等命令的时候,默认的目标就是 origin,当然你爱叫什么叫什么,但是如果别名不是 origin,执行 git push 等命令的时候,还需要指定别名。
  • https://gitee.com/doubibiji/hello-git.git 是仓库的地址。

2 推送代码到远程仓库 git push

注意!注意!注意!

我们刚才创建远程仓库的时候,没有勾选仓库初始化选项,所以仓库是空的,如果此时远程仓库不为空,则会推送失败。

使用如下指令推送:

# 如果本地分支为master,使用这个指令
git push -u origin master

# 如果本地分支名称为main,使用这个指令
git push -u origin main
  • 1
  • 2
  • 3
  • 4
  • 5

上面的命令表示推送到本地的 master 分支到远程仓库 origin 的 master 分支,并将本地 master 分支设置为跟踪远程的 master 分支。

操作的时候如果是第一次操作,会弹出认证,提示输入 git 的账号密码,按照要求操作就行了。


还有一个地方要注意,本地分支的名称要与远程分支的名称一致,推送之前也可以修改本地分支的名称:

git branch -M master		# 在 main 分支上执行,将main分支修改为master分支
  • 1

现在本地的代码已经推送到远程仓库了,可以刷新 gitee 仓库的页面可以看到推送的代码。

上面第一次推送的时候,需要指定远程仓库和分支,将本地分支和远程分支关联,后面在 master 分支推送的时候就不需要指定了,直接使用 git push指令就可以了。

git push
  • 1

如果在本地创建了 develop 分支,如何将 develop 分支推送到远程仓库呢,使用如下命令:

git push -u origin develop
  • 1

这会将本地的 develop 分支推送到远程仓库的 develop 分支,并将本地分支设置为跟踪远程的 develop 分支。

如果后面在 develop 分支修改代码,直接在 develop 分支执行 git push 命令就可以推送到远程 develop 分支了。

3 拉取代码 git pull

远程仓库发生更新后,可以使用 pull 命令拉取远程仓库的代码同步都到本地仓库。

git pull   # 拉取远程仓库的代码
  • 1

拉取的时候如果有冲突,则需要处理合并。


在实际的开发中,在推送代码(push)到远程仓库之前,最好先执行拉取操作 (pull)。

为什么在 push 之前最好先 pull

因为你可能一开始从远程仓库 pull 的代码,然后进行修改,但是在你 push 之前,别人可能又 push 了代码到了远程的仓库,你本地的代码不是最新的,所以 push 可能会失败。所以我们在 push 之前要保证本地的代码是最新版本,需要先 pull 一下,pull 的时候可能会有冲突,因为别人也修改了代码,合并冲突,然后再提交,提交完成,再 push。

而在 pull 之前保证最好当前的工作空间是干净的,没有未提交的代码。如果有未提交的更改,建议提交,这样做有助于避免合并冲突。


4 克隆仓库 git clone

上面我们是本地已经有仓库了,然后将本地仓库与远程空仓库进行关联。

我们也可以先在 gitee 上创建远程仓库,然后将远程仓库 克隆 到本地仓库,然后再进行后续的修改和提交。

这样就不用进行本地仓库的初始化和关联操作了。

我们进入到一家公司,一般都是通过这种方式,从远程仓库将代码克隆到本地,然后在进行修改和提交。


举个例子:

现在已经有远程仓库 https://gitee.com/doubibiji/hello-git.git

通过如下命令克隆到本地:

git clone 仓库地址						# 本地仓库和远程仓库文件夹名称相同
git clone 仓库地址 本地名称		 # 还可以指定本地文件夹的名称,可远程仓库不同

# 克隆我的仓库
git clone https://gitee.com/doubibiji/hello-git.git
  • 1
  • 2
  • 3
  • 4
  • 5

克隆到本地的仓库,是不需要初始化的,直接可以修改代码,然后直接使用 git pushgit pull 命令进行代码推送和拉取。

6.4 VSCode中操作远程仓库

实际的开发中,一般使用可视化操作,在VSCode中或IDEA中操作,就比较方便了。

本地代码 commit 之后,可以直接进行 push 。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如果没有关联远程仓库,会提示要不要添加远程仓库,OK 就会弹出添加。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

弹出添加远程仓库:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

点击添加后,会提示输入远程仓库的地址:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

输入完成回车,会要求属于远程仓库的名称,输入 origin 就可以了:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


这样就和远程的仓库关联了,后面修改、提交、pull 和 push代码就行了。


如果本地没有仓库,在打开 VSCode 的时候,切换到 git 页面,可以点击 Clone Repository 克隆仓库。

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

在弹出的窗口输入仓库地址即可:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

6.4 远程仓库的其他指令

远程库常用的其他指令:

git remote									# 显示关联的远程库
git remote remove origin		# 删除 origin 远程库
  • 1
  • 2

除了可以使用 git pull 命令拉取代码,还可以使用 git fetch 命令。

git fetchgit pull 都是拉取代码,但是有很大区别,git pull 会拉取并合并代码,git fetch 只拉取代码到本地,不会自动合并代码,还需要手动合并。

git fetch										# 拉取远程的代码到本地
git merge origin/master			# 和远程的代码合并
  • 1
  • 2

git pull = git fetch + git merge,如果有冲突,需要手动解决,一般 git pull 用的多。

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

闽ICP备14008679号