本篇文章主要处理以下两种多分支问题
- 如何将自己在本地的修改上传到一个新的Git分支(比如用于测试,不合并进main分支)?
- 如何在一个新的本地仓库拉取一个项目的非main分支,并处理他们关联关系?
1. 将自己在本地的修改上传到一个新的Git分支。
1.1 切换到目标分支
(1) 首先可以确定一下当前本地的分支和远程的分支
# 查看本地分支
git branch
# 查看远程分支
git branch -r
# 查看所有分支
git branch -a
其中* 就代表自己目前所在的分支。
(2)比如本地和远程上都只有main
,这时你只是想同步自己的实验性代码,并不想合并进main
分支,那么此时我们可以先在本地新建一个名为experimental
的分支并切换到新分支上:(如果分支已经存在,则不加-b
,直接切换即可)
git checkout -b experimental
1.2 提交你的更改
git add .
git commit -m "Your commit message"
这里的 . 表示添加所有更改的文件,你也可以指定具体的文件。“Your commit message” 应该是一个描述你所做更改的信息。
1.3 推送到远程仓库
如果这是第一次将 experimental 分支推送到远程仓库,你需要使用 -u 参数来设置上游(远程)分支:
git push -u origin experimental
这将创建一个名为 experimental 的新分支在你的 GitHub 仓库中,并将你的本地更改推送到这个远程分支。-u 参数表示将本地分支与远程分支关联起来,以便于今后的推送和拉取操作。
如果远程仓库中已经有 experimental 分支,并且你之前已经设置了跟踪关系,那么你只需要简单地运行:
git push
接下来你就可以灵活地在本地进行分支的切换了(checkout),他们分别和远程上对应名字的分支对应。
2. 在一个新的本地仓库拉取一个项目的非main分支,并处理他们关联关系。
2.1 克隆仓库(如果尚未克隆)
如果你还没有克隆远程仓库,首先需要克隆它。使用 git clone 命令,加上仓库的 URL,以拉取FlexGen为例:
git clone https://github.com/Cheny1m/FlexGen.git
2.2 切换到你想要的分支(如 experimental) 分支
进入仓库目录:
cd FlexGen/
将 FlexGen 替换为你的仓库名。
然后,使用 git checkout -b 命令创建并切换到新的本地分支,同时设置其跟踪对应的远程分支:
git checkout -b experimental origin/experimental
2.3 拉取最新的更改
在新创建的分支上,你现在可以拉取最新的更改:
git pull
同样的,你可以灵活地在本地进行分支的切换了(checkout),他们分别和远程上对应名字的分支对应。