checkout 切换/创建分支

最后更新于:2022-04-02 02:52:52

[TOC] ## 用法 ### 切换分支 ``` git checkout ``` ### 创建并切换分支 ``` git checkout -b ``` 等效于 ``` git branch git checkout ``` ### 强制切换分支 如果创建存在同名分支,`-b`会报错, `-B`会强制覆原同名分支 ``` git checkout -B ``` ### 切换新分支为远程分支 ``` // 拉取并切换同名的远程分支 > git checkout -t origin/release // 可以指定名称 > git checkout -b origin/newBranch ``` ### 创建空分支 没有commit历史记录,是一个完全独立背景干净的分支 ``` > git checkout --orphan // 此时内容已经为无历史的仓库 // 可以使用 git rm -rf 删除不需要的文件 // 甚至可以 git rm -rf . 删除所有文件 并提交 > git commit -am "xxx" ``` ### 带修改内容切换分支 ``` git checkout --merge ``` 在切换分支时,连修改内容一并带过去 注意: 1. 如果当前分支和切换分支间的内容不同的话,容易造成冲突。 2. 切换到新分支后,当前分支修改过的内容就丢失了。 ### 交互显示与另一分支的区别 可以在交互时界面中进行合并 ``` >git checkout -p master_no_saas ... IX' => '.html', // 设置静态缓存文件后缀 + 'HTML_CACHE_RULES' => array( + 'board:board_content'=>array('{:module}/{:controller}/{:action}/{id}'), + ) ); (1/1) Apply this hunk to index and worktree [y,n,q,a,d,e,?]? y ``` ### 撤销所有更改 `git checkout .` ### 撤销文件更改 `git checkout README.md` ### 一个分支强制覆盖另一个分支 方式一: ``` git push origin develop:master -f ``` 方式二: ``` git checkout master git reset --hard develop git push origin master --force ``` 方式三: 如果被覆盖的分支为保护分支 ``` git checkout master git reset --hard develop git pull --rebase git push origin master ```
';