5.分支管理(分支的创建、切换、合并)

在实际开发中,我们经常会遇到这种需求:

  • 不打扰主线代码,先试试一个新功能
  • 多个开发人员各自写各自的功能
  • 想在多个版本之间切换工作

这时,就要用到「分支(branch)」来隔离、管理不同的开发线。

补充对分支的理解,如我在main分支创建了a.txt (未add),此时创建dev分支可以看见main分支对a.txt的更改。但如果我在dev上commit之后,回到main之后则不存在a.txt文件了,就相当于两个工作区一样

Git 分支基本概念

  • 主分支:默认叫 master(或 main
  • 分支的本质:一个指向某次提交的“指针”
  • HEAD:指向当前分支的位置(你正在干活的分支)

1.查看已有分支: git branch 分支名

git branch
  • 会列出当前所有分支,当前所在的分之前有*标记

2.创建新分支:git branch 分支名

git branch dev
  • 创建一个名为dev的新分支,复制自当前分支的最新提交。

3.切换分支:git switch 分支名

git switch dev
  • 此时已切换dev分支,开始在上面开发了
  • 如果是老版本Git,也可以用git checkout dev

4.创建并切换新分支:一条命令搞定

git switch -c dev

相当于:

git branch dev
git switch dev

Git 会尝试把dev上的改动合并进master,如果没有冲突,会自动完成。


5.合并分支:git merge

切换会主分支后,合并新分支的内容:

git switch main
git merge dev

Git 会尝试把dev上的改动合并进main,如果没有冲突,会自动完成。


6.删除分支(合并后清理):git branch -d

git branch -d dev

如果你确认合并完了,就可以删掉旧分支。


6.搭建ssh远程连接(无需梯子)

一、配置git bash

在git bash中运行以下:

ssh-keygen -t ed25519 -C "你的GitHub邮箱"

当提示:

Enter file in which to save the key (~/.ssh/id_ed25519):

你可以直接回车(会覆盖旧的 id_ed25519)
或者输入一个新名字,比如:

~/.ssh/id_ed25519_laptop

二、启用新的ssh key

eval "$(ssh-agent -s)"

ssh-add ~/.ssh/id_ed25519_laptop

三、把公钥加到Github

cat ~/.ssh/id_ed25519_laptop.pub

复制整段(从 ssh-ed25519 开始到最后),
然后在 GitHub → SettingsSSH and GPG keysNew SSH key → 粘贴保存。
标题建议写成 “Laptop - 2025” 这种好区分的名字。

四、验证

ssh -T git@github.com

看到:

Hi Sirens007! You've successfully authenticated...

说明配置成功


7.远程仓库操作

1.远程仓库概念

本地 Git 仓库 = 你电脑上的版本库(.git 目录)。
远程仓库 = 存在于服务器(比如 GitHub)上的版本库。

2.四个常用操作

(1)clone - 从远程仓库下载到本地

git clone https://github.com/Sirens007/MyStorage.git

#运行后,你本地就有一个 myproject 目录,并且可以直接 git pull 或 git push。

作用:

  • 会在本地新建一个文件夹
  • 自动把该仓库的所有版本历史下载到本地
  • 自动设置好 origin 这个远程名,指向该仓库

(2)remote - 管理远程仓库地址

查看已有远程:

git remote -v

添加远程:

git remote add origin https://github.com/Sirens007/MyStorage.git

修改远程:

git remote set-url origin <新地址>

删除远程:

git remote remove origin

origin 是默认的远程仓库名字,你也可以用别的名字。


(3)push - 推送本地代码到远程

第一次推送(如果远程没有内容):

git push -u origin main

解释:

  • origin:远程仓库名
  • main:分支名
  • -u:记住这个推送目标,下次可以直接git push

之后推送就可以:

git push

(4)pull - 从远程拉取最新版本

git pull origin main

作用:

  • 把远程 main 分支的最新提交下载到本地
  • 并与本地当前分支合并

如果远程没有变化,你会看到:

Already up to date.

(5)远程分支与本地分支的关系

  • 当你执行 git clonegit fetch 后,Git 会在本地维护远程分支的快照,叫做 远程跟踪分支,格式一般是 origin/分支名
  • 本地分支和远程分支是分开的,推送(push)和拉取(pull)就是它们之间的同步操作。

(6)查看远程分支

git branch -r
  • 只列出远程仓库的分支
git branch -a
  • 本地和远程所有分支都会显示

(7)跟踪远程分支的新建本地分支

如果远程有个分支,你想在本地工作,需要先新建一个本地分支跟踪远程:

git switch-c dev origin/dev
  • 这会基于远程dev分支新建本地dev分支

(8)远程仓库冲突解决

多人合作时,推送可能被拒绝,提示远程有更新需要先拉取:

git push
To https://github.com/xxx.git
 ! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'https://github.com/xxx.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. ...

这时,需要先拉取远程的最新修改:

git pull --rebase origin main
  • --rebase 表示把你的提交“挪到”最新远程修改之后,避免额外合并提交。

(9)查看远程仓库详情

git remote show origin

可以看到:

  • 远程分支状态
  • 你本地分支对应的上游分支
  • 是否有可推送或拉取的内容
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐