起因
git命令行方式切换分支,Linux系统下,遇到过几次切换分支后HEAD和当前分支断开的情况,原因是git checkout 使用错误导致。特此记录备忘。
结果
1.查看git checkout的帮助信息。
root@YNF-kylinV10:/home/myb/桌面/repo/agent# git checkout -?
error: unknown switch `?'
用法:git checkout [<选项>] <分支>
或:git checkout [<选项>] [<分支>] -- <文件>...
-q, --quiet 不显示进度报告
-b <分支> 创建并检出一个新的分支
-B <分支> 创建/重置并检出一个分支
-l 为新的分支创建引用日志
--detach 成为指向该提交的分离头指针
-t, --track 为新的分支设置上游信息
--orphan <新分支> 新的没有父提交的分支
-2, --ours 对尚未合并的文件检出我们的版本
-3, --theirs 对尚未合并的文件检出他们的版本
-f, --force 强制检出(丢弃本地修改)
-m, --merge 和新的分支执行三方合并
--overwrite-ignore 更新忽略的文件(默认)
--conflict <风格> 冲突输出风格(merge 或 diff3)
-p, --patch 交互式挑选数据块
--ignore-skip-worktree-bits
对路径不做稀疏检出的限制
--ignore-other-worktrees
不检查指定的引用是否被其他工作区所占用
--progress 强制显示进度报告
2.使用git checkout -t 新建一个本地分支跟踪远程分支remotes/origin/agent-framework
。
root@YNF-kylinV10:/home/myb/桌面/repo/agent# git branch -t framework remotes/origin/agent-framework
分支 framework 设置为跟踪来自 origin 的远程分支 agent-framework。
3.查看本地分支与远程分支对应情况。
git config --list
branch.lFramwork.remote=origin
branch.lFramwork.merge=refs/heads/agent-framework