Git设计优秀之处
- 跟踪管理修改,而非文件
丢弃修改的内容
- 改乱了工作区的文件,要直接丢弃
$ git checkout -- file
- 不仅改乱了工作区文件,还添加到了暂存区
$ git reset HEAD file
回到场景1,按场景1操作
从版本库删除文件
- 在文件管理器中删除或者使用
$ rm test.txt
- 将删除操作添加到暂存区
$ git rm test.txt
- 提交暂存区到版本库
$ git commit -m "remove test.txt"
分支管理
- 创建分支
$ git branch dev
- 转换分支
$ git checkout dev
*note: 可以使用$ git checkout -b dev
*合并上述创建和转换分支操作 - 查看当前分支
$ git branch
列出所有分支,当前分支前面会有标一个 * 号 - 正常添加提交后,如果无误则切换回
master
分支
$ git check out master
note:此时会发现刚才添加提交的文件都不见了 - 确认无误后把刚才的
dev
分支工作合并到master
分支
$ git merge dev
- 合并完成后,可以放心的删除
dev
分支了
$ git branch -d dev
*note:强行删除分支使用命令$ gti branch -D dev
*
总结:Git鼓励使用分支完成某个任务,合并后删掉分支,这样与直接在master
分支上工作效果是一样的,但过程更安全 - 分支策略
master
分支是非常稳定的,仅用来发布新版本,平时不能在上面干活。
干活都在dev
分支上,当要发布新版本时,将dev
分支合并到master
分支上,在master
分支上发布新版本 - Bug分支管理
正在工作时接到处理Bug的工作,需要将手头的工作“储藏”起来
$ git stash
note: 此时使用$ git status
查看工作区应该是干净的
然后从需要的分支上面创建新的用于修复Bug的分支开始工作,工作完成后合并分支,删除Bug分支即可,此时要转回之前dev
分钟
$ git checkout dev
此时工作区是干净的,需要找回之前“储藏”的工作区
$ git stash list
恢复有两种办法:
- 用
$ git stash apply
恢复,然后用$ git stash drop
删除stash - 用
$ git stash pop
,恢复的同时stash内容也删除了
note: 如果有多次的stash,恢复的时候用以下命令指定要恢复的stash
$ gti stash apply stash@{0}
多人协作
暂略(暂时不需要)