git checkout 切换分支或恢复工作树文件
1. git checkout 是什么?
??git-checkout - 切换分支或恢复工作树文件
2. git checkout 用法与实践
?2.1 切换分支 git checkout [<分支>]
git checkout [<分支>] 当 [<分支>]如果存在时, 将切换到该 [<分支>] 当 [<分支>]如果不存在时, git 将报出未匹配到该 [<分支>]
?案例:
??2.1.1 git branch --all 查看本地和远程分支 ????master ????remotes/origin/HEAD -> origin/master ????remotes/origin/master ??2.1.2 git checkout master (master分支存在) ????说明:将切换到本地的master分支上 ??2.1.3 git checkout test (test分支不存在) ????说明:test分支不存在时,将会提示未匹配到该branch
?2.2 checkout新建分支
git checkout -b|-B <新分支> 指定-b会创建一个新分支,就像 调用git-branch[1]然后创建一样 如果-B给出,new-branch则在不存在时创建;否则,它被重置。
?案例 ??2.2.1 git branch --all 查看本地和远程分支 ????master ????remotes/origin/HEAD -> origin/master ????remotes/origin/master ??2.2.2 git checkout -b test ????说明:指定-b时,git将会创建test分支并且切换到该分支.(如果存在时,git将会报错已经存在该分支) ??2.2.3 git checkout -B test1 ????说明:分支,如果不存在时创建并且切换到该分支;否则,它被重置并且切换到该分支
?2.3 checkout清除文件修改
??checkout对于文件的修改和清除本质是: ? 用暂存区|索引(index)中的内容覆盖工作树(未git add的)
??2.3.1 git checkout . 清除工作树修改的内容 ????说明:将工作树中的修改文件全部清除,但保留暂存区的信息(如果暂存区没有,那么该命令等于清除工作树所有内容) 案例和2.3.2大致一样请看下方案例
??2.3.2 git checkout -- file|path 清除工作树修改的某个文件|路径 ????说明:清除工作树中修改的file或path的内容
?案例: ??当如果在工作区改了信息,但是没有git add 加入到暂存(index)中时案例. ??1.修改readme.md文件,加入"checkout说明" ??2.输入git checkout readme.md
??说明:当执行上面步骤时,步骤1的信息将被清除
??3. 当步骤1执行后,再执行git add . 保存到暂存区后,执行步骤2时
??步骤3说明:此时信息已经保存到暂存区,git checkout readme.md 将还是保留暂存区(index)信息,等于 “不变化”
??2.3.3 git checkout -f 忽略工作树和暂存(index)中修改的信息 ???说明:途中有未跟踪的文件,也要继续。这用于丢弃本地更改和任何未跟踪的文件或目录
?案例 ??1.修改readme.md文件,加入"checkout说明" ??2.输入git checkout -f
??说明:当输入-f 这个时,不管有没有(git add)暂存区内容,都将把暂存区和工作区都清除 谨慎使用
|