官方文档有句话“切换分支的时候最好保持一个清洁的工作区域。”,不知道我的理解是不是正确的。如果你当前分支有修改,但是还没有commit,如果你要切换分支的话,最好就是把内容都commit了?还是只用add到暂存区,下次回来可以继续。
官方文档有句话“切换分支的时候最好保持一个清洁的工作区域。”,不知道我的理解是不是正确的。如果你当前分支有修改,但是还没有commit,如果你要切换分支的话,最好就是把内容都commit了?还是只用add到暂存区,下次回来可以继续。
如果你当前分支有修改,但是还没有commit,如果你要切换分支的话,最好就是把内容都commit了?
不是,因为你的change还不一定ready for commit,根据你的实际情况,你可以git stash暂存,你可以commit生成一个新的提交,你也可以git checkout -f强制切换分支
没有进行commit并切换分支,当前文件还在缓冲区。
不是对当前Git版本,进行提交。
在任意分支下还可reset修改或commit.
测试
git config --global alias.co checkout git config --global alias.br branch git config --global alias.ci commit git config --global alias.st status git br a git br git br b git co a touch a.py git add . git co b git st git add . git commit -m 'add a.py file' git st 当前文件就回出现b分支下 如果这样,退回上次commit git reset --hard
2 回答1.2k 阅读✓ 已解决
3 回答1.8k 阅读
2 回答1.2k 阅读
1 回答1.1k 阅读
2 回答948 阅读
766 阅读
1 回答345 阅读
有如下几种处理方式:
1. add并且commit,再checkout,提交到当前分支
2. add但不commit,可以stash,然后checkout回来之后stash apply,在commit,提交到当前分支
3. add但不commit,也不stash,直接checkout,然后再commit的话,记录就在切换分支下面。
其背后的原因:一个本地的git repo只有一个工作区和暂存区,但是有多个分支的提交区,而我们的checkout只是将HEAD指针从一个分支切换到另一个分支。