git 常用命令 分支操作

3.1 创建分支

场景1:创建新分支

工作中遇到的使用方式:创建新分支,修BUG,然后提交PR

git branch test1                    基于当前分支最新提交新建分支test1,但不会切换到test1分支
git branch test2 125a1d15e          基于指定提交创建新分支
git checkout -b test2               基于当前分支最新提交新建分支test2,并切换到test2
git checkout -b test2 125a1d15e     基于指定提交创建新分支,并切换到test2
git fetch origin release:dev

如上操作皆有如下特性:
已存在同名分支则报错:a branch named 'test1' already exists
没有关联的远程分支,故此不可直接 git push

场景2:临时查看某个提交的内容

工作中遇到的使用方式:调查BUG时查看git提交历史,临时查看某个提交的代码

git checkout 125a1d15e               新建临时分支(HEAD detached at e0c619c)
git checkout origin/main

git switch -c test4                  如果想保留这个临时分支,可执行此命令来创建新分支test4

如上操作皆有如下特性:
已存在同名分支则报错:a branch named 'test4' already exists
没有关联的远程分支,故此不可直接 git push

场景3:远程分支拉到本地建立关联

工作中遇到的使用方式:不通过PR的方式合入代码。直接拉取分支→修改→push

git checkout -t origin/release            拉取origin/release 到本地并创建release分支,(-t 即 --track)
git push

git checkout -b release origin/release    拉取origin/release 到本地并创建release分支
git push

git checkout -b test23 origin/release     拉取origin/release 到本地并创建test23分支
git push origin HEAD:release

git checkout test6                        远程仓库有test6分支本地没有时,可用此法
git push

如上操作皆有如下特性:
有关联的远程分支,故可直接 git push

3.2 删除分支

场景1:删除本地分支 or 标签

git branch -d test1       只是删除了这个「引用」而已,并不会删除任何 Commit-ID; 如果一个Commit-ID没有被任何一个分支引用的话,在一定时间之后,将会被 Git 回收机制删除

git branch -d -f test2    强制删除分支test2
git branch -D test3       强制删除分支test2

场景2:删除远程分支 or 标签

git branch -d -r origin/test1    删除远程分支在本地的副本.git/refs/remotes/origin/test1
git push origin :test1           删除远程分支test1

git push origin --delete test33  删除远程分支test33

3.3 远程分支重命名

1. git checkout old-name                   check out the branch
2. git branch -m new-name                  change local branch name
3. git push origin :old-name new-name      push local new-name to remote old-name and change the remote branch name

参考 git 远程分支重命名_如何在远程git服务器中重命名分支名称?

3.4 查看分支

git branch -a           查看所有本地分支+所有远程分支(-a 是 --all 的简写)
git branch -r           查看所有远程分支(-r 是 --remotes 的简写)
git branch              查看所有本地分支
git branch -v           举例说明: test6 828852f msg
git branch -vv          举例说明: test6 62e5e7e [origin/test6] msg

3.5 切换分支

git checkout master           从当前分支切换到master分支

场景1:远程仓库有test6分支,本地没有同名分支,本地git checkout test6 会自动拉取远程分支test6并创建同名本地分支

git checkout test6    远程仓库有test6分支本地没有时,自动拉取远程分支test6 并创建同名本地分支
git push              可以成功提交

git checkout test6    远程仓库有test6分支,本地有test6,他们没有关联关系
git push              git push 会被拦截

拓展:Git常用命令汇总

你可能感兴趣的:(GIT,git)