使用git我做了这样的东西

git clone
git checkout {a rev number tree rev before} (here I started to be in a detached head state)
//hacking
git commit
//hacking
git commit
(some commit where made on origin/master)
git pull (which does complete because there was some error due to the fact that I'm no more on master)

因为它告诉我,当我处于超然的头脑状态时,我仍然可以做出承诺,我这样做了。 但现在我想合并分离的head分支和本地master分支,然后将我的一堆更改推到origin/master。

所以我的问题是我如何将主分支与我的实际状态(分离头)合并


当前回答

你可以使用git merge <commit-number>或者git cherry-pick <commit> <commit>…

正如Ryan Stewart所建议的,你也可以从当前的HEAD创建一个分支:

git branch brand-name

或者只是一个标签:

git tag tag-name

其他回答

结帐actual-branch

Git合并{{commit-hash}}

如果你在这种情况下(提交被分离),我会给一个适当的步骤直到push。分离的意思是当你的提交不与任何分支相关联时,它只与“分离的头”状态相关联。

首先你必须创建一个新的分支,分离提交将自动与新分支相关联

git branch temporaryWork

然后转到结帐master,这样你就可以合并那个“temporaryWork”。请考虑核对一下分公司名称列表,以免出现错误

git checkout master
git merge temporaryWork

git会提示你的文件可能有冲突,然后去查看你的代码文本编辑器,删除你不需要的代码。

并提交变更

git add .
git commit -am "merging temporaryWork" 

然后删除"temporaryWork"

get branch -d temporaryWork

然后把它推到github。

git push origin master

在你所在的位置创建一个分支,然后切换到master并合并:

git branch my-temporary-work
git checkout master
git merge my-temporary-work

或者,您可以在分支上选择commit-id。

<commit-id>在分离head状态

Git checkout master

Git cherry-pick <commit-id>

没有临时分支,没有合并。

当我做了导致分离头部的签出,git实际上告诉我在这种情况下该怎么做:

Git开关-c \<new-branchname>

结果会像分离头之前一样离开主节点,而包含在分离头状态下工作时所做的所有提交的新分支。

重现/测试/了解更多细节:

用两次提交创建一个testrepo:

~/gittest$ git log——一行 17c34c0 (HEAD -> master 5975930 1

签出之前的提交1

~/gittest$ git checkout 5975930

这条德国信息出现了

Hinweis: Wechsle zu '5975930'. Sie befinden sich im Zustand eines 'losgelösten HEAD'. Sie können sich umschauen, experimentelle Änderungen vornehmen und diese committen, und Sie können alle möglichen Commits, die Sie in diesem Zustand machen, ohne Auswirkungen auf irgendeinen Branch verwerfen, indem Sie zu einem anderen Branch wechseln. Wenn Sie einen neuen Branch erstellen möchten, um Ihre erstellten Commits zu behalten, können Sie das (jetzt oder später) durch Nutzung von 'switch' mit der Option -c tun. Beispiel: git switch -c \<neuer-Branchname> Oder um diese Operation rückgängig zu machen: git switch - Sie können diesen Hinweis ausschalten, indem Sie die Konfigurationsvariable 'advice.detachedHead' auf 'false' setzen. HEAD ist jetzt bei 5975930 1

翻译成英语是:

Note: Change to '5975930'. You are in the state of a 'detached HEAD'. You can look around, make experimental changes and commit them, and you can discard any possible commits you make in this state without affecting any branch by switching to another branch. If you want to create a new branch to keep your created commits, you can do that (now or later) by using 'switch' with the -c option. Example: git switch -c <new-branch-name>. Or to undo this operation: git switch -. You can turn off this hint by setting the configuration variable 'advice.detachedHead' to 'false'. HEAD is now at 5975930 1

(通过www.DeepL.com/Translator翻译(免费版))