赞
踩
目录
4-4. 在切换分支的时候,将当前分支修改的内容,同步到切换的分支下
11. 项目发版后可能有紧急bug需要修复,此时应建立bug分支或hotfix分支进行修复,修复完成后,合并分支到master。
git init
git remote add origin 远程仓库地址
git clone 远程仓库地址
git checkout -b 分支名 / git switch -c 分支名
等同于:
git branch 分支名 (创建分支)
git checkout 分支名 (切换分支)
git branch
git checkout 分支名 / git switch 分支名
master:主分支,一般只有拥有相关权限的人员可以操作
sit:测试分支,合并分支后,测试人员在sit环境测试
release:预发布分支,release 为预上线分支,发布提测阶段,会以此分支代码为基准提测
feature:功能分支,可使一个功能建立一个功能分支
dev:开发分支
hotfix: 项目发版后的紧急修复分支
bug: 一般只用于本地修复bug
git checkout --merge 分支名 这个命令适用于在切换分支的时候,将当前分支修改的内容一起打包带走,同步到切换的分支下。
使用这个命令时如果当前分支和切换分支间的内容不同的话,容易造成冲突。并且切换到新分支后,当前分支修改过的内容就丢失了。所以,这个命令谨慎使用。
git pull origin 分支名称 / git pull
git add .
git rm --cached 文件名
写了很久发现写错了,想恢复到一开始的状态,使用 git checkout . 使用这个命令后,当前分支的修改会重置,谨慎使用。
git commit -m "描述信息" (-m 为描述信息)
feat: 新功能
fix: 修复bug
style: 不影响代码含义的更改,如 格式化
perf: 提高性能的更改
docs: 只是文档的更改
git merge 分支名 (git merge 用于合并指定的分支到当前分支)
使用 git status 查看工作区冲突文件
文件中 git用<<<<<<<
,=======
,>>>>>>>
标记出不同分支的内容,根据需要删除或保存。
保存后重新提交git add . => git commit -m 'commit' => git push
- <<<<<<< HEAD
- Hello World
- =======
- Hello Word
- >>>>>>> dev1
使用 git merge --abort 取消合并
git merge --abort 命令仅仅在合并后导致冲突时才使用,它将会抛弃合并过程并且尝试重建合并前的状态。但是,当合并开始时如果存在未commit的文件,该命令可能无法重现合并前的状态。
所以在合并时,还有未commit的文件时,可以用git-stash命令将这些文件暂存起来,并在解决冲突以后使用git stash pop把这些文件还原。详情参考第11条。
使用 git reset 命令:
git reset --soft: 将分支回退到指定提交,工作区维持现状不变,暂存区会在现有基础上增加该commit之后的提交。
git reset --mixed: (默认操作)将分支回退到指定提交,暂存区也被同步为该指定提交,工作区保持不变。
git reset --hard: 将分支回退到指定分支,暂存区和工作区都会被同步为该指定的提交。
git reset 后的三个参数回退程度是依次递进。soft最轻微,它不会重置当前工作区和暂存区,只会将回退版本后续的提交加到暂存区。mixed会改变暂存区,使它和回退版本同步。hard则会重置工作区和暂存区,使它和回退版本一致。
git revert 的作用是通过创建一个新的版本,这个版本的内容与我们要回退到的目标版本一样,但是HEAD指针是指向这个新生成的版本,而不是目标版本。
如果我们想恢复之前的某一版本(该版本不是merge类型),但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法。我们使用git revert HEAD命令就可以创建一个新的版本,此版本与上一个版本相同。
git revert HEAD :撤销前一次 commit
git revert HEAD^ :撤销前前一次 commit
git revert commit + (commit id) : 撤销指定的版本,撤销也会作为一次提交进行保存。
git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
git branch -d 分支名 (强行删除应使用 git branch -D 分支名)
git push origin 分支名 / git push (强行推送可用 git push -f )
一般在推送前需要先用 git pull 命令拉取新代码,才能push成功。
使用 git log 命令查看提交信息,若本地分支比远程分支快两个提交,尝试推送本地分支;
若失败了,说明有人先推送了远程分支,使用 git pull 拉取;
加上之前的合并提交,现在本地分支比远程分支超前3个提交,使用 git log 会发现这个分叉很不好看,但是可以push成功吗?可以。
但是对于有强迫症的同学就不太好了,此时,可以使用 git rebase 命令,将原本分叉的提交变成一条直线,之后在push,远程的提交历史也是一条直线。
若有紧急bug需修复时,此时工作区还未提交,且此时工作尚未完成,无法提交,此时可使用 git stash ,将当前工作现场隐藏,等bug修复完成后在恢复现场。
隐藏后使用 git status 查看工作区,此时工作区时干净的。修复完成后,使用 git stash list 可查看工作现场。
此时,使用 git stash apply 恢复现场,但恢复后, stash 内容 并没有删除,需要使用命令 git stash drop 删除。
或者使用 git stash pop 命令,恢复现场同时删除stash内容。再用 git stash list 命令查看,就看不到任何stash内容了。
可以多次使用 git stash 命令‘储藏’工作区,恢复时,先用 git stash list 查看,后可指定要恢复的stash,如 git stash apply stash@{0}
参考文章:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。