Loading

Git基础:分支操作

切换分支

查看本地分支,执行命令:git branch -a

当前指向的分支是:wifi_support,现在我想切换到分支:develop。执行命令:git checkout develop,结果失败了,并提示错误原因,如下图

可以看到,是因为有文件修改了,但没有提交。可以执行:git status ,查看文件的变化。

我不想保留已跟踪且被修改的文件的提交,所以执行命令:git checkout . ,接着执行:git checkout develop

新建分支

我想在develop分支基础上新增wifi项目,但是我不能直接提交代码到develop分支,但是我可以在develop分支上开辟一条新分支wifi-feature,然后在该分支上提交wifi项目。

首先确认分支是否切换到develop分支,通过命令查看:git branch -a。拉取并合并develop分支数据,执行命令:git pull

然后新建分支并wifi-feature,并将HEAD指向新分支wifi-feature,执行命令:git checkout -b wifi-feature origin/develop

推送分支

wifi项目已经修改好了一版,需要提交到远程仓库。首先,需要提交到本地仓库,然后才能推送到远程仓库。

跟踪wifi项目,执行命令:git add app/rk_wifi_app

接着,提交本地仓库,执行命令:git commit -m "Add wifi application"

最后,推送到远程仓库,执行命令:git push -u origin wifi-feature。这里要注意一下:git push -u origin wifi-feature,要求远程仓库没有 wifi-feature分支,若远程仓库已经有了该分支,则执行:git push 即可。

克隆分支

只想克隆Git仓库的指定Tag,而不想把仓库所有Tag都克隆,例如:

执行命令:git clone -b 5.72 https://github.com/bluez/bluez.git

这样拉取下来是不会创建本地分支并跟踪远程分支的

合并分支

之前从develop分支切了一个新分支:support-wifi,在新分支上编写了wifi-app,然后提交到了远程仓库。但这个期间远程develop分支有了很多提交,我现在要把develop合并到support-wifi分支。
首先,切到develop分支,更新develop分支。然后切换support-wifi分支,合并develop分支。

git checkout develop
git fetch
git merge

git checkout support-wifi
git merge develop

修改分支

将本地master分支修改为main,执行: git branch -m main.

删除分支

删除分支包括:删除本地分支和删除远程分支

我已经从远程仓库跟踪了一个分支support-bt,并拉取分支support-bt到本地support-bt分支。现在我想删除本地分支support-bt,首先切换到非support-bt分支,然后可以执行:git branch -d support-bt

本地support-bt分支删除后,如果希望将远程support-bt分支也删除,可以执行:git push origin -d support-bt

这样远程仓库的support-bt分支就会被删除。

posted @ 2024-08-07 12:04  eiSouthBoy  阅读(15)  评论(0编辑  收藏  举报