签出到上一个提交后如何进行推送,然后进行了一些提交,现在推送时,不发送更改

时间:2020-01-15 06:29:52

标签: git gitlab

我对上一次提交进行了结帐 然后,我对代码进行了更改,并提交了我现在应该做什么,以从外部存储库中进行推拉操作。

如何将HEAD返回到代码的当前(已签出和编辑)的当前版本,并将其与外部存储库中的代码集成

1 个答案:

答案 0 :(得分:1)

似乎您被引导到一个独立的HEAD,可以看作是一个无名的分支。解决方案是找出您所做的提交,并将其应用于命名分支。

根据您的描述,我无法确定您现在所处的状态。因此,首先使用git reflog来查找提交。 git reflog打印HEAD曾经指向的提交列表。从上到下,找出您熟悉的 FIRST 提交,并确定这是您在无名分支上进行的一项或多项提交。如果您只提交了一份,那就是我们正在寻找的。如果您完成了多个任务,请使用git log <commit>查找所有任务。如果情况更加复杂(我希望不会如此),请对可能的提交使用git reflog,然后多次使用git log,以找出所有似乎丢失的提交。

第二,将这些提交应用于命名分支。假设您希望它们位于master上。

# switch to master
git checkout master

# apply the commits from the oldest to the youngest
git cherry-pick A B C

最后,更新并推送master

git pull origin -r master
git push origin master