Git本地\远程分支区分查找
//1. 查看分支
使用 git branch 命令可以查看本地分支。当前分支前面会有一个星号(*)。
使用 git branch -r 命令可以查看远程分支(线上分支)。
使用 git branch -a 命令可以查看所有分支(包括本地和远程)。
2. 分支命名约定
通常,远程分支会以远程仓库的名称(默认为origin)作为前缀,
例如:origin/main、origin/develop。
本地分支则没有这个前缀,例如:main、develop。
3. 示例
假设我们有一个仓库,本地分支有 main 和 feature,远程分支有 origin/main 和 origin/develop。
查看本地分支:
$ git branch例子:
* maindevelopfeature/login
查看远程分支:
$ git branch -r输出例子:
origin/HEAD -> origin/main
origin/main
origin/develop
origin/feature/payment
查看所有分支:
$ git branch -a
例子:
* maindevelopfeature/loginremotes/origin/HEAD -> origin/mainremotes/origin/mainremotes/origin/developremotes/origin/feature/payment
2. 命名约定区分
Git 使用特定的命名约定来区分本地和远程分支:
本地分支:直接使用分支名称,如 main、develop、feature/login
远程分支:使用 远程仓库名/分支名 的格式,如 origin/main、origin/develop
常见的远程仓库名称:
origin - 默认的远程仓库名称
upstream - 常用于指向原始仓库(当你 fork 了一个项目时)
3. 查看分支详细信息
使用 git show-branch 命令可以查看分支的更多信息:
git show-branch
使用 git branch -vv 命令可以查看本地分支与远程分支的跟踪关系:
git branch -vv输出例子:
* main abc1234 [origin/main] Commit messagedevelop def5678 [origin/develop] Another commitfeature ghi9012 [origin/feature: ahead 2] Local changes在这个输出中:[origin/main] 表示本地 main 分支跟踪远程 origin/main 分支ahead 2 表示本地分支有 2 个提交尚未推送到远程
4. 查看远程仓库信息
使用 git remote show 命令查看远程仓库的详细信息:
git remote show origin
6. 创建和切换分支时的区分
创建本地分支:git branch new-feature
创建并切换到本地分支:git checkout -b new-feature
基于远程分支创建本地分支:git checkout -b local-feature origin/remote-feature
总结
区分本地和远程分支的关键点:
命名约定:远程分支有 远程名/ 前缀(如 origin/main)
查看命令:
git branch - 只显示本地分支git branch -r - 只显示远程分支git branch -a - 显示所有分支
跟踪关系:使用 git branch -vv 查看本地分支与远程分支的关联
警告
记住,本地分支是你本地仓库中的分支,而远程分支是存储在远程服务器(如 GitHub、GitLab)上的分支副本。当你推送(git push)时,会将本地分支的变化更新到远程分支;当你拉取(git pull)时,会将远程分支的变化合并到本地分支。
4. 切换和创建分支
当你要在远程分支的基础上创建本地分支时,通常的做法是:
首先,使用 git fetch 获取远程分支的最新信息。
然后,使用 git checkout -b <本地分支名> <远程分支名> 来创建并切换到一个新的本地分支,该分支跟踪对应的远程分支。
例如,要基于远程分支 origin/develop 创建一个本地分支 develop 并切换过去:
git checkout -b develop origin/develop