创建分支:git branch brh # git branch + 分支名
查看分支:git branch
git branch -a # 查看全部分支
git branch -r # 查看远程分支
git branch -l # 查看本地分支
切换分支:git checkout brh # git checkout 分支名
创建并切换分支:git checkout -b brh # git checkout -b 分支名
删除分支:git branch -d brh # git branch -d 分支名
强制删除分支:git branch -D brh # git branch -D 分支名
提交分支到服务器:git push origin brh # git push origin 分支名
在master上合并brh:git merge brh # git merge 分支名 这样的合并方式是快速合并方式,不会产生commit id,利用了合并的子分支的commit id继续操作
git merge --no-ff -m "注释" brh # 使用非快速合并方式,会生成一个新的commit id
删除远程分支:git push origin --delete brh # git push origin --delete 分支名
git push origin :brh # 先删除本地分支,再推送空分支
修改分支名:git branch -m brh newbrh # git branch -m old分支名 newbrh
查看合并情况:git log --graph --pretty=oneline
git log --graph --pretty=oneline --abbrev-commit
分支暂存:先讲文件保存在暂存区中:git add .
再将工作暂存:git stash
列出暂存的状态:git stash list
从暂存区中恢复:git stash apply # 恢复
git stash drop # 删除
或者直接恢复并删除:git stash pop
利用git diff 生成标准的patch:在一个分支上修改了代码并提交了之后:git diff master > mypat # 生成补丁文件
在另一个分支上应用补丁:git apply mypat
利用git format-patch 生成git专用补丁:在一个分支上修改了代码并提交了之后:git format-patch -M master # -M参数就是指定分支,进行比较。 会生成一个补丁文件:0001-Add-toString-Method.patch
应用补丁信息:git am 0001-Add-toString-Method.patch
将远程服务端上的brh分支内容拷到本地的brh分支上:git merge origin/brh
补充:如果push出现 fatal: refusing to merge unrelated histories 错误,因为两个根本不相干的 git 库, 一个是本地库, 一个是远端库, 然后本地要去推送到远端, 远端觉得这个本地库跟自己不相干, 所以告知无法合并。
具体的方法,第 一种方法: 从远端库拉下来代码 , 本地要加入的代码放到远端库下载到本地的库, 然后提交上去 , 因为这样的话, 你基于的库就是远端的库, 这是一次update了。
第二种方法:使用这个强制的方法
git pull origin master --allow-unrelated-histories
后面加上 --allow-unrelated-histories
, 把两段不相干的 分支进行强行合并