我们在testing
分支修改readme.txt
文件,再进行一次提交 。
# 1.查看当前工作的分支L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ git branchmaster* testing# 2.修改文件,提交新版本L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ echo "branch test v4" >> readme.txtL@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ git commit -a -m '第4次提交,新增内容:branch test v4'warning: LF will be replaced by CRLF in readme.txt.The file will have its original line endings in your working directory[testing 25f0827] 第4次提交,新增内容:branch test v4 1 file changed, 1 insertion(+)# 3.查看所有分支的最后一次提价L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ git branch -vmasterb97ccfd 第3次提交,新增内容:branch test v3* testing 25f0827 第4次提交,新增内容:branch test v4# 4.查看版本库历史提交记录L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ git log --graph --oneline* 25f0827 (HEAD -> testing) 第4次提交,新增内容:branch test v4* b97ccfd (master) 第3次提交,新增内容:branch test v3* f72a9fe 第2次提交,新增内容:branch test v2* fa2439a 第1次提交,新增readme.txt文件
通过上面的日志信息,此时 HEAD
指针的状态如下图:
文章插图
可以看到
HEAD
随着在testing
分支上的提交操作,自动向前移动 。5、删除分支使用命令:
git branch -d branchname
。但是要注意的是:若要删除某分支,必须要保证当前工作的分支,不能是该分支 。
这个时候我们需要先切换回
master
分支 。L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (testing)$ git checkout masterSwitched to branch 'master'L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git branch* mastertesting
此时 HEAD
指针的状态如下图:文章插图
说明:继续我们开始删除git checkout master
这条命令做了两件事 。
在切换分支时,一定要注意你工作目录里的文件会被改变,你的工作目录会恢复到该分支最后一次提交时的样子 。如果 Git 不能干净利落地完成这个任务,它将禁止切换分支 。(下面分支实战中有详细说明)
- 是使 HEAD 指回
master
分支 。- 是将工作目录中文件,恢复成
master
分支所指向提交的快照内容 。
也就是说,你现在做修改的话,项目将始于master
分支版本 。本质上来讲,这就是忽略testing
分支所做的修改,以便于向另一个方向进行开发 。
testing
分支 。L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git branch -d testingerror: The branch 'testing' is not fully merged.If you are sure you want to delete it, run 'git branch -D testing'.
提示你:分支“testing”没有合并到主分支,如果确定要删除它,请运行git branch -D testing
命令 。。所以我们使用
-D
选项删除 testing
分支 。# 1.删除分支L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git branch -D testingDeleted branch testing (was 25f0827).# 2.查看本地库中的分支,就只有master分支了L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git branch* master# 3.查看提交历史记录L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git log --graph --oneline* b97ccfd (HEAD -> master) 第3次提交,新增内容:branch test v3* f72a9fe 第2次提交,新增内容:branch test v2* fa2439a 第1次提交,新增readme.txt文件# 可以看到对testing分支的修改,只要没有合并,对master分支是没有影响的 。# 4.查看可回退的提交历史记录L@DESKTOP-T2AI2SU MINGW64 /j/git-repository/learngit (master)$ git reflogb97ccfd (HEAD -> master) HEAD@{0}: checkout: moving from testing to master25f0827 HEAD@{1}: commit: 第4次提交,新增内容:branch test v4b97ccfd (HEAD -> master) HEAD@{2}: checkout: moving from master to testingb97ccfd (HEAD -> master) HEAD@{3}: commit: 第3次提交,新增内容:branch test v3f72a9fe HEAD@{4}: commit: 第2次提交,新增内容:branch test v2fa2439a HEAD@{5}: commit (initial): 第1次提交,新增readme.txt文件# 可以看到只要HEAD移动过,所有历史轨迹都会保留在Git版本库中 。# (也就是.git/objects目录中的文件只能无限的增多,存储了就不会删除掉 。)
经验总结扩展阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- dubbo的一系列配置与搭建
- 2023年10月1日适合祀灶吗 2023年10月1日祀灶吉日一览表
- 支持JDK19虚拟线程的web框架,之一:体验
- 2023年农历八月十七修路吉日 2023年10月1日修路吉日一览表
- 注定跟处女座是夫妻的星座 相爱一生不分离
- 2023年10月1日出丧黄道吉日 2023年10月1日出丧吉日一览表
- 2023年10月1日下葬好吗 2023年10月1日下葬行吗
- 笑起来最好看的三大星座 回眸一笑百媚生
- 2023年10月1日做法事吉日一览表 2023年10月1日做法事好吗
- 恋爱中虽然会比较感性 但这4个星座的智商一直在线