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):
bashgit 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 本地分支名