当前位置: 首页 > news >正文

网站建设免费制作沈阳网站开发培训多少钱

网站建设免费制作,沈阳网站开发培训多少钱,g3云推广会员登录,wordpress白色主题文章目录 一、分离头指针二、创建分支三、比较commit内容四、总结 一、分离头指针 正常情况下,在通过git checkout命令切换分支时,在命令后面跟着的是分支名(例如master、temp等)或分支名对应commit的哈希值。 非正常情况下&…

文章目录

  • 一、分离头指针
  • 二、创建分支
  • 三、比较commit内容
  • 四、总结


一、分离头指针

正常情况下,在通过git checkout命令切换分支时,在命令后面跟着的是分支名(例如master、temp等)或分支名对应commit的哈希值。

非正常情况下,git checkout切换分支时后面跟了一个非分支对应commit的哈希值,此时就会产生分离头指针问题。

例如,项目的版本历史中有如下3次commit,其中两个分别是temp分支和master分支;此时将分支切换到第三个commit(也就是非temp、master分支)上,就会出现detached HEAD提示,即分离头指针问题。

git log
commit e5d60c7d913d427b2e2161f717dff97249dd1f9b (HEAD -> temp)
Author: xxx <xxx@163.com>
Date:   Thu Nov 9 10:22:51 2023 +0800add temp_testcommit 01df9fd5e046f104312468746168b027f4285c5c (master)
Author: xxx <xxx@163.com>
Date:   Thu Nov 9 10:22:04 2023 +0800add file1commit db2d096bf27e4e8f4ca42e8b185e973b05e186df
Author: xxx <xxx@163.com>
Date:   Thu Nov 9 10:21:31 2023 +0800add readme

切换到非分支的commit上,git就会提示当前处在detached HEAD分离头指针状态:

git checkout db2d096bf27e4e
Note: switching to 'db2d096bf27e4e'.You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:git switch -c <new-branch-name>Or undo this operation with:git switch -Turn off this advice by setting config variable advice.detachedHead to falseHEAD is now at db2d096 add readme

此时HEAD指针并未在某个分支旁边,即头指针与分支分离了:

git log --all
commit e5d60c7d913d427b2e2161f717dff97249dd1f9b (temp)
Author: xxx <xxx@163.com>
Date:   Thu Nov 9 10:22:51 2023 +0800add temp_testcommit 01df9fd5e046f104312468746168b027f4285c5c (master)
Author: xxx <xxx@163.com>
Date:   Thu Nov 9 10:22:04 2023 +0800add file1commit db2d096bf27e4e8f4ca42e8b185e973b05e186df (HEAD)
Author: xxx <xxx@163.com>
Date:   Thu Nov 9 10:21:31 2023 +0800add readme

二、创建分支

当切换到某个commit时,git会提示已进入到分离头指针状态,并显示在该状态下可进行的操作:
a)可在该HEAD(commit)中进行测试、提交或取消更改,当切回到分支时不会影响到分支,但此前在此commit上做的所有操作都会丢失
b)若想保留在该commit上的变动,可通过git switch -c branch_name进行分支添加

分离头指针指向某个commit后,若再切换回master分支或其他分支时,没有为该commit新建分支,则所有在该commit上做的操作都将丢失

1)在commit上进行修改操作,并进行commit提交

vi readmegit status
HEAD detached at db2d096
Changes not staged for commit:(use "git add <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)modified:   readmeno changes added to commit (use "git add" and/or "git commit -a")git add readme
warning: LF will be replaced by CRLF in readme.
The file will have its original line endings in your working directorygit commit -m "detach modify file"
[detached HEAD 69cde78] detach modify file1 file changed, 1 insertion(+)git log
commit 69cde788edb4184538f2155ea5e062f5649e8781 (HEAD)
Author: xxx <xxx@163.com>
Date:   Thu Nov 9 15:56:42 2023 +0800detach modify filecommit db2d096bf27e4e8f4ca42e8b185e973b05e186df
Author: xxx <xxx@163.com>
Date:   Thu Nov 9 10:21:31 2023 +0800add readme

2)当再切回到master分支时,git提示有一个commit未被连接到任意branch分支上,可通过git branch来创建新分支。

git checkout master
Warning: you are leaving 1 commit behind, not connected to
any of your branches:69cde78 detach modify fileIf you want to keep it by creating a new branch, this may be a good time
to do so with:git branch <new-branch-name> 69cde78Switched to branch 'master'

3)在未把分离头指针对应的commit创建新branch时,git log中是看不到它的信息的。

git log --all --graph          # gitk --all 可调出图形界面
* commit e5d60c7d913d427b2e2161f717dff97249dd1f9b (temp)
| Author: xxx <xxx@163.com>
| Date:   Thu Nov 9 10:22:51 2023 +0800
|
|     add temp_test
|
* commit 01df9fd5e046f104312468746168b027f4285c5c (HEAD -> master)
| Author: xxx <xxx@163.com>
| Date:   Thu Nov 9 10:22:04 2023 +0800
|
|     add file1
|
* commit db2d096bf27e4e8f4ca42e8b185e973b05e186dfAuthor: xxx <xxx@163.com>Date:   Thu Nov 9 10:21:31 2023 +0800add readme

4)为detach区域建立分支。

git branch detach_branch 69cde78   # 复制前面git提示的命令语句,添加分支名称即可git log --all --graph        # 此时版本历史中就能看到detach分支的信息
* commit 69cde788edb4184538f2155ea5e062f5649e8781 (detach_branch)
| Author: xxx <xxx@163.com>
| Date:   Thu Nov 9 15:56:42 2023 +0800
|
|     detach modify file
|
| * commit e5d60c7d913d427b2e2161f717dff97249dd1f9b (temp)
| | Author: xxx <xxx@163.com>
| | Date:   Thu Nov 9 10:22:51 2023 +0800
| |
| |     add temp_test
| |
| * commit 01df9fd5e046f104312468746168b027f4285c5c (HEAD -> master)
|/  Author: xxx <xxx@163.com>
|   Date:   Thu Nov 9 10:22:04 2023 +0800
|
|       add file1
|
* commit db2d096bf27e4e8f4ca42e8b185e973b05e186dfAuthor: xxx <xxx@163.com>Date:   Thu Nov 9 10:21:31 2023 +0800add readme

5)图形化界面看版本历史
gitk --all
在这里插入图片描述

三、比较commit内容

可通过git diff命令来比较两个commit之间的内容差异。

git log --all --oneline
69cde78 (detach_branch) detach modify file
e5d60c7 (temp) add temp_test
01df9fd (HEAD -> master) add file1
db2d096 add readmegit diff 69cde78 e5d60c7        # 后跟两个commit哈希值
diff --git a/file1 b/file1
new file mode 100644
index 0000000..e69de29
diff --git a/readme b/readme
index 9fa5398..e69de29 100644
--- a/readme
+++ b/readme
@@ -1 +0,0 @@
-test detach
diff --git a/temp_test b/temp_test
new file mode 100644
index 0000000..e69de29

git diff后面也可以跟HEAD这样的指针名称,以及用^~1来表示父类

git diff HEAD HEAD^         # HEAD^ 表示HEAD指针对应commit的父commit
diff --git a/file1 b/file1
deleted file mode 100644
index e69de29..0000000git diff HEAD HEAD^^          # HEAD^^ 父亲的父亲
fatal: ambiguous argument 'HEAD^^': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'git diff HEAD HEAD~1         # HEAD~1 <==> HEAD^
diff --git a/file1 b/file1
deleted file mode 100644
index e69de29..0000000git diff HEAD HEAD~2         # HEAD~2 <==> HEAD^^
fatal: ambiguous argument 'HEAD~2': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

四、总结

一般情况下,我们切换分支只在已有的几个分支名称之间来回切换,但遇到切换到某个commit的情况时,即出现分离头指针问题时,要懂得该问题是如何产生的,并通过什么样的操作步骤可以去解决它,而不影响到现有分支。此外,分离头指针现象也可以便于我们进行相关的测试,在不影响现有生产的前提下。


http://www.yayakq.cn/news/909770/

相关文章:

  • 制造业外贸营销网站建设windows没有wordpress
  • 新视网站建设联系qq找培训班一般在什么平台
  • 中国空间站叫什么名建设一个网站需要注意哪些内容
  • 做黄图网站接广告好赚吗软文代写兼职
  • 提供网站设计收费标准单位网站建设工作功劳
  • 公司建网站有何意义简单asp网站源码
  • wordpress静态文件放到cdn保定百度seo排名
  • 网站平台建设工作汇报wordpress 软件公司模板
  • 免费绑定域名的建站wordpress文章发布区
  • 做网站建设需要做哪些工作室昆明昌盛网络技术有限公司
  • 食品网站的网页设计wordpress wiki
  • 徐州h5模板建站在线测评网站怎么做
  • 大型门户网站建设服务国外做农产品有名的网站有哪些
  • 基于asp.net的视频网站开发注册传媒公司需要的条件
  • 扁平风格网站 模板html制作个人网页案例
  • 网站建设的展望建设完网站如何信息更新
  • 高端交互式网站建设厦门网站建设方案开发
  • 怎么做网站一张图互联网电商
  • 苏州网站建设制作公司小程序开发服务器做网站配置
  • 广州专业建网站公司如何替换网站上的动画
  • 网站排版的优点网站建设加盟招商
  • 网站做新浪图床网站登录注册页面模板下载
  • 在线做c 题的网站wordpress怎样修改域名
  • seo和网站建设那个先学小型网站维护
  • 网站深圳资源库网站建设
  • 泰安微信网站建设如何制作简单网页
  • 佛山新网站建设市场如何选择网站制作公司
  • 深圳仿站定制模板建站有域名了怎么做网站
  • 网站建设及代运营合同免费域名注册二级域名
  • 河南建设网站公司微信营销推广公司