git关联本地和远端仓库的图文笔记

前言
  • 场景:当已有本地仓库和远端仓库的情况下,如何进行git管理。

  • 方式有两种

    • 1.最简单的方式是使用git clone将远端代码克隆到本地目录,并将已有工程代码直接拷贝到此目录下让git管理。

    • 2.手动关联本地仓库和远端仓库。(本着折腾的原则,本文记录一下手动关联的步骤)

  • 开始之前,安利一个git版本控制的gui客户端工具:sourceTree,下文会以图文的方式介绍关联步骤。

准备工作
  • 本地安装git。

  • gitlab中新建远端仓库。

  • 开始时,本地仓库(master)和远端仓库(origin/master origin/dev)并没有任何关联。

步骤
  • 1)先将本地的工程初始化为git仓库

    • 进入工程目录使用git init命令初始化。

$ git init
Initialized empty Git repository in G:/test.work/data-alarm-server/.git/
  • 2)为本地添加一个远端仓库

  • 地址即是我们将要合并的远端的地址

$ git remote add origin http://xxx/xxx/dataalarmserver.git
  • 3)追踪远端分支

    • 开发时,经常会在远端建立一个开发dev分支,同样的,我们也可以在本地建立一个开发分支与远端对应,本地默认分支名为master。

    • 如下,我们就直接把本地的master分支和远端dev分支关联上。

    • 命令作用在于追踪远端分支,但如下图所示,版本仍未同步。

$ git branch --set-upstream-to=origin/dev
Branch 'master' set up to track remote branch 'dev' from 'origin'.        

4)查看远端分支

  • 括号中指明了地址是用于拉取还是推送,如果没有权限,则不会显示。

git remote -v
origin  http://xxxxxx/dataalarmserver.git (fetch)
origin  http://xxxxx/dataalarmserver.git (push)

5)使用git pull拉取代码

  • 直接pull代码会报错,单纯使用pull命令无法拉取更新,因为两个仓库可能都有内容,所以我们必须加上参数将不相关的两个仓库强行合并,报错如下:

Username for 'http://xxxx': username
fatal: refusing to merge unrelated histories

6)合并不相关的两个仓库

  • --allow-unrelated-histories参数的作用在于允许关联不相关的历史信息。

  • 合并之后发现本地已经超前远端2个版本了。

git pull --allow-unrelated-histories

7)解决合并时的冲突

  • 初始化远端仓库时,有可能ReadMe.md及.gitignore文件内容会冲突,需要解决冲突。

8)推送

  • 由于我们只追踪了远端的dev分支,直接push会报错。解释如下:

    • 其中git push不带参数,默认情况下,是将本地的master分支推送到远端origin。

    • 正如下提示所说,我们需要指定将本地仓库内容推送至远端仓库的dev分支。

    • 使用的命令是:git push origin HEAD:dev

$ git push
fatal: The upstream branch of your current branch does not match
the name of your current branch.  To push to the upstream branch
on the remote, use git push origin HEAD:dev

9)推送成功,检查状态

  • 如下status说明当前我们的分支已经和远端的dev分支保持同步了

$ git status
On branch master
Your branch is up to date with 'origin/dev'。
nothing to commit, working tree clean。

总结
  • 如果不知道该使用什么命令时,多多使用git status命令 和git --help来查询手册。

  • 图形化工具能提高我们的开发效率,但是多使用命令更能加深我们对技术的理解。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值