个人的几个疑问:
为什么不直接切换分支修改bug,然后合并?
Super Girl@DESKTOP-NOEE1D4 MINGW64 ~/learngit/gitskills (featurel)
$ git add bug.txt
Super Girl@DESKTOP-NOEE1D4 MINGW64 ~/learngit/gitskills (featurel)
$ git checkout dev
error: Your local changes to the following files would be overwritten by checkout:
bug.txt
Please commit your changes or stash them before you switch branches.
Aborting
在没有进行commit
的时候无法切换分支。
Super Girl@DESKTOP-NOEE1D4 MINGW64 ~/learngit/gitskills (featurel)
$ git checkout -b dev1
Switched to a new branch 'dev1'
D bbbbug.txt
M bug.txt
但是新建并切换就可以,具体并不知什么原因。
为什么不直接通过新建一个分支在新的分支上修复bug然后合并?
1.新建/切换dev分支
2.新建文件
3.切换到master分支
4.两个分支内容一样
1.新建/切换dev分支
2.修改文件
3.切换到master分支
4.两个分支内容一样
1.新建切换到dev分支
2.修改文件
3.使用add和commit命令
4.切换到master分支
5.提示找不到文件了
借用别人的理解:工作区和暂存区是一个公开的工作台,任何分支都会用到,并能看到工作台上最新的内容,只要在工作区、暂存区的改动未能够提交到某一个版本库(分支)中,那么在任何一个分支下都可以看得到这个工作区、暂存区的最新实时改动。 使用git stash
就可以将暂存区的修改藏匿起来,使整个工作台看起来都是干净的。所以要清理整个工作台,那么前提是必须先将工作区的内容都add到暂存区中去。之后在干净的工作台上可以做另外一件紧急事件与藏匿起来的内容是完全独立的
dung!dung!dung!BUG!
刚刚输错了命令git 奔溃了,出现了一个问题,导致不能切换分支并且当前分支也无法删除:
Super Girl@DESKTOP-NOEE1D4 MINGW64 ~/learngit/gitskills (dev1)
$ git checkout master
fatal: Unable to create 'C:/Users/Super Girl/learngit/gitskills/.git/index.lock': File exists.
Another git process seems to be running in this repository, e.g.