工作中遇到的使用方式:创建新分支,修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
工作中遇到的使用方式:调查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
工作中遇到的使用方式:不通过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
git branch -d test1 只是删除了这个「引用」而已,并不会删除任何 Commit-ID; 如果一个Commit-ID没有被任何一个分支引用的话,在一定时间之后,将会被 Git 回收机制删除
git branch -d -f test2 强制删除分支test2
git branch -D test3 强制删除分支test2
git branch -d -r origin/test1 删除远程分支在本地的副本.git/refs/remotes/origin/test1
git push origin :test1 删除远程分支test1
git push origin --delete test33 删除远程分支test33
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服务器中重命名分支名称?
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
git checkout master 从当前分支切换到master分支
git checkout test6
会自动拉取远程分支test6并创建同名本地分支git checkout test6 远程仓库有test6分支本地没有时,自动拉取远程分支test6 并创建同名本地分支
git push 可以成功提交
git checkout test6 远程仓库有test6分支,本地有test6,他们没有关联关系
git push git push 会被拦截
拓展:Git常用命令汇总