Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Git中,暂时返回一次提交以创建分支,然后重新应用提交到主分支_Git_Github - Fatal编程技术网

在Git中,暂时返回一次提交以创建分支,然后重新应用提交到主分支

在Git中,暂时返回一次提交以创建分支,然后重新应用提交到主分支,git,github,Git,Github,我一直以一种非常简单、有限的方式使用git和opensrc 我在github中完成了这个项目 我把我的叉子克隆到我的电脑上 我在电脑上做了一些改变 我提交更改 我推我的github叉子 我创建了从github fork到原始项目的pull请求,这只适用于单个更改 但是如果我在我的计算机上做了更多的更改,并在接受拉请求之前提交和推送,那么它们将被添加到相同的拉请求中。我知道这并不理想,所以我尝试等待第一个请求被接受,然后再做进一步的更改,但这并不总是可能的 因此,我尝试创建一个新分支来修复一个

我一直以一种非常简单、有限的方式使用git和opensrc

  • 我在github中完成了这个项目
  • 我把我的叉子克隆到我的电脑上
  • 我在电脑上做了一些改变
  • 我提交更改
  • 我推我的github叉子
  • 我创建了从github fork到原始项目的pull请求,这只适用于单个更改
但是如果我在我的计算机上做了更多的更改,并在接受拉请求之前提交和推送,那么它们将被添加到相同的拉请求中。我知道这并不理想,所以我尝试等待第一个请求被接受,然后再做进一步的更改,但这并不总是可能的

因此,我尝试创建一个新分支来修复一个bug。但是因为这个分支是在我已经对主分支进行了提交之后创建的,所以这个新分支上的任何拉请求也包括我的主提交


所以我想我要做的是暂时返回主分支上的一次提交,然后创建新分支,然后继续主分支上的提交,我该怎么做

默认情况下,
git branch new\u branch
使用当前
头创建一个新分支。要选择不同的起点,只需显式地提供它

git branch new_branch HEAD^

默认情况下,
git branch new\u branch
使用当前的
头创建一个新分支。要选择不同的起点,只需显式地提供它

git branch new_branch HEAD^

其中HEAD^是提交id?
HEAD^
是当前签出的分支头的父级。它不仅仅是一个占位符;它是对特定提交的有效引用。我不明白,假设您只向
主控
分支添加了一个提交,则此答案中显示的命令(按原样键入)将根据提交之前的
主控
创建一个新分支。好的,谢谢,为完整起见,我是否可以指定一个commitid?其中HEAD^是提交id?
HEAD^
是当前签出的分支头的父级。它不仅仅是一个占位符;它是对特定提交的有效引用。我不明白,假设您已将一个提交添加到
master
分支中,则此答案中显示的命令(按原样键入)将根据提交之前的
master
创建一个新分支。好的,谢谢,为了完整性,我可以指定一个提交吗?