Git笔记---远程仓库的创建与基本操作

1. 远程仓库的创建

git是一个分布式版本控制系统,这意味着一个仓库可以在多台主机上存在备份,并能通过一定的机制进行同步。

我们可以使用如下命令对远程主机上的仓库进行克隆:

bash 复制代码
git clone <仓库地址>

也就是将远程 Git 仓库完整复制到本地,生成一个与远程仓库关联的本地仓库(包含完整的版本历史、分支、文件等)。

但是,多台主机上都存在这这样的备份,我们以谁为准呢?当然,我们可以在团队内部自己指定,但是更常见的做法是在某些知名的开源社区创建仓库(如github、gitee)。

接下来我们以gitee为例:

接下来按照提示一步步完成即可,遇到不知道该怎么选的就不管它,保持原样:

完成创建,我们就可以在个人主页找到创建好的仓库了:

2. 远程仓库克隆到本地

bash 复制代码
git clone <仓库地址>

执行后会在当前目录下创建一个与仓库名同名的文件夹,内含完整的仓库文件和 Git 版本信息(注意,使用该命令时所在的目录不能是某个git仓库的子目录)。

在克隆之前需要在本地完成全局用户名和邮箱的配置,用户名和邮箱需要和gitee上的注册用户名、邮箱相同:

bash 复制代码
git config --global user.name <gitee用户名>
git config --global user.email <注册gitee使用的邮箱>

仓库地址是什么呢?我们点击进入自己的仓库,可以看到:

点击之后出现如下弹窗:

2.1 HTTPS 地址

弹窗的第一个选项页给出了仓库的HTTPS地址:

直接使用该地址完成克隆即可:

bash 复制代码
git clone <仓库的HTTPS地址>

2.2 SSH 地址

弹窗的第二个选项页给出了仓库的SSH地址:

在使用SSH地址进行克隆之前,必须进行公钥的配置:生成、添加 SSH 公钥

完成配置之后即可使用SSH地址进行克隆:

bash 复制代码
git clone <仓库的SSH地址>

2.3 本地仓库路径

适用于将本地某个仓库复制到其他目录(如共享给同事、备份等)。例如:

bash 复制代码
# 示例:克隆本地 /home/user/project 仓库到当前目录的 new-project 文件夹
git clone /home/user/project new-project

3. 查看远程仓库

在克隆下来的本地仓库当中,我们可以使用git remote 命令查看远程仓库的信息:

origin就代表该仓库的远程来源。上图中,我们可以看到抓取(fetch)和推送(push)的地址,这代表我们有权利对远程仓库进行抓取和推送。

4. 本地代码推送到远程

bash 复制代码
# 完整语法:推送到指定远程仓库的指定分支
git push <远程仓库名> <本地分支名>:<远程分支名>

# 简化语法(常见场景)
git push  # 前提:本地分支与远程分支已建立「追踪关系」
git push <远程仓库名> <分支名>  # 如 git push origin main

将本地仓库中已提交(git commit) 的代码,上传到远程仓库(如 GitHub、GitLab),实现代码共享或备份。

注意:

  • **远程仓库名:**默认远程仓库名为 origin(克隆仓库时自动创建),可通过 git remote -v 查看。

  • **分支名映射:**若本地分支与远程分支同名,可省略 :<远程分支名>,直接写 git push origin main(等价于 git push origin main:main)。

  • 首次推送分支: 本地新建分支后首次推送,需绑定追踪关系(后续可直接 git push):

    bash 复制代码
    git push -u origin <本地分支名>  # -u = --set-upstream,绑定追踪关系

5. 远程代码拉取到本地

bash 复制代码
# 完整语法:拉取指定远程仓库的指定分支,合并到本地指定分支
git pull <远程仓库名> <远程分支名>:<本地分支名>

# 简化语法(常见场景)
git pull  # 前提:本地分支与远程分支已建立追踪关系
git pull <远程仓库名> <分支名>  # 如 git pull origin main

从远程仓库拉取最新代码,并自动合并到本地当前分支(底层等价于 git fetch + git merge)。

注意:

  • **底层逻辑:**git pull = git fetch(拉取远程代码到本地缓存,不合并) + git merge(将缓存的远程代码合并到本地当前分支);
  • **分支合并:**若本地当前分支与远程分支同名且已追踪,直接 git pull 即可;若需拉取远程分支到本地其他分支,需指定本地分支名(如 git pull origin dev:local-dev)。

注:将远程代码拉取到本地实际上就是将远程分支合并到本地分支,将本地代码推送到远程实际上就是将本地分支合并到远程分支。在这个过程中可能会发生冲突,如果在推送时发生冲突,则需要先拉取,解决冲突后再提交并推送到远程。

6. 本地分支与远程分支的追踪关系

在 Git 中,本地分支与远程分支的追踪关系是核心操作之一,建立后可简化 git pull/git push 命令(无需每次指定远程仓库和分支)。

6.1 本地新建分支推送到远程并关联

本地创建分支后,首次推送到远程时直接建立追踪关系,用 git push -u(-u 是 --set-upstream 的缩写,意为「设置上游分支」)。

bash 复制代码
# 若本地分支名与远程分支名一致(推荐)
git push -u origin 本地分支名

# 若本地分支名与远程分支名不一致(需显式指定远程分支名)
git push -u origin 本地分支名:远程分支名

6.2 本地已有分支关联已存在的远程分支

若远程分支已存在(比如其他人创建的 origin/test),本地已创建同名 / 不同名分支,需手动建立关联,用 git branch --set-upstream-to。也可用该指令修改追踪关系:

bash 复制代码
git branch --set-upstream-to=origin/远程分支名 本地分支名
# 简化写法(当前已在本地分支时,可省略最后一个「本地分支名」)
git branch --set-upstream-to=origin/远程分支名

若要新建分支关联到远程已有分支,也可以:

bash 复制代码
​
git checkout -b 本地分支名 origin/远程分支名

6.3 克隆仓库后默认追踪关系

克隆远程仓库时(git clone <仓库地址>),Git 会自动:

  • 在本地创建 master/main 分支(与远程默认分支同名);
  • 建立「本地 master/main ↔ 远程 origin/master/origin/main」的追踪关系。

此时直接执行 git pull/git push 即可,无需额外配置。

验证追踪关系是否建立成功:

bash 复制代码
git branch -vv

6.4 解除追踪关系

若需取消本地分支与远程分支的关联,用 --unset-upstream:

bash 复制代码
git branch --unset-upstream 本地分支名
相关推荐
风123456789~2 小时前
【健康管理】健康管理师-考试范围
笔记·健康管理
Hello_Embed2 小时前
FreeRTOS 入门(四):堆的核心原理
数据结构·笔记·学习·链表·freertos·
9***Y482 小时前
终于解决了!Git拉取代码冲突的处理
git
烧冻鸡翅QAQ3 小时前
考研408笔记——数据结构
数据结构·笔记·考研
lkbhua莱克瓦244 小时前
集合进阶6——TreeMap底层原理
java·开发语言·笔记·学习方法·hashmap
南屿欣风4 小时前
Idea中Git切换分支,如何确保代码不丢失。
git
不一样的故事1264 小时前
将 Git 远程仓库的地址从 HTTP 修改为 SSH,
git·http·ssh
n***i954 小时前
终于搞定了!Git分支回滚的正确操作
git
im_AMBER5 小时前
算法笔记 13 BFS | 图
笔记·学习·算法·广度优先