前言

开始了,提交不上去

git push xxx xxx/dev-v1.0.1
T otal 0 (delta 0), reused 0 (delta 0)
To ssh://gitlab.xxxx.cn:xx/xxx/gateway.git
 ! [remote rejected] xx/dev-v1.0.1 -> xxx/dev-v1.0.1 (deny updating a hidden ref)
error: failed to push some refs to 'ssh://git@gitlab.xxx.cn:xxx/xxxx/gateway.git'
百度一个解决方案
 git pull --rebase origin master

远程库与本地库同步。

git push origin HEAD:master

确定上传分支,一本默认为master,这一步即可,不行试试下一步再上传。

git push -u origin master
又开始

第一步pull就失败了,后续两步也尝试了无效。

dell@DESKTOP-9UF9FEN /xxxx/work/xxx/gateway (detached HEAD|REBASE 5/16)
git pull --rebase xxxx dev-v1.0.1
From ssh://gitlab.xxxx.cn:xxxx/xxxx/gateway
 * branch            dev-v1.0.1 -> FETCH_HEAD

It seems that there is already a rebase-apply directory, and
I wonder if you are in the middle of another rebase.  If that is the
case, please try
        git rebase (--continue | --abort | --skip)
If that is not the case, please
        rm -fr "D:/work/xxx/xxxx/.git/rebase-apply"
and run me again.  I am stopping in case you still have something
valuable there.

git status 也无效

git status
HEAD detached at xxxxx/dev-v1.0.1
nothing to commit, working tree clean
git rebase --abort
git pull --rebase 遇到大问题
git log
commit 200b6141a884989124009487fa90deb776e2d047 (HEAD)
Author: liukang <xxx@xxx.com>
Date:   Fri Sep 27 10:22:02 2019 +0800

    add:
    1、新增常量 xxxxx

commit bcd2ed304174064539291dcb028cfcae3579a169
Author: liukang <xx@xxx.com>
Date:   Fri Sep 27 10:19:53 2019 +0800

    add:
    1、新增批量登记数据接口


git reset --hard 200b6141a884989124009487fa90deb776e2d047

结果发现代码还是没有......

回滚的正确姿势

第一步执行 git reflog

git reflog

200b614 (HEAD) HEAD@{0}: pull --rebase xxx dev-v1.0.1: add:
bcd2ed3 HEAD@{1}: pull --rebase xxx dev-v1.0.1: add:
3e585df HEAD@{2}: pull --rebase xxx dev-v1.0.1: add:
88c6b64 HEAD@{3}: pull --rebase xxx dev-v1.0.1: add:
5fcacb6 (xxxx/dev-v1.0.1, master, dev-1.0.1) HEAD@{4}: pull --rebase xxxx dev-v1.0.1: checkout 5fcacb6d64f0562cc796d16dd7f9dd2e9407c904
3ed474f HEAD@{5}: rebase: updating HEAD
1796d7f HEAD@{6}: commit (merge): pull 最新代码
3ed474f HEAD@{7}: reset: moving to 3ed474f
5fcacb6 (xxxxx/dev-v1.0.1, master, dev-1.0.1) HEAD@{8}: reset: moving to 5fcacb6
3ed474f HEAD@{9}: reset: moving to 3ed474f
e4c2b62 HEAD@{10}: reset: moving to e4c2b62
3ed474f HEAD@{11}: reset: moving to 3ed474f
5fcacb6 (xxxxx/dev-v1.0.1, master, dev-1.0.1) HEAD@{12}: checkout: moving from 2713bf28e9d15541f022846eaf3a8d80a3074c8c to laohu/dev-v1.0.1
2713bf2 (origin/dev-v1.0.1) HEAD@{13}: checkout: moving from 63cbda1fcd160ae381a5c436fbf4d4a114e2ffb5 to origin/dev-v1.0.1
63cbda1 HEAD@{14}: reset: moving to 63cbda1fcd160ae381a5c436fbf4d4a114e2ffb5
3c8ecb3 HEAD@{15}: reset: moving to 3c8ecb3ca430ac05f4d0a3c48db8fdac53417e2e
76c47a1 HEAD@{16}: commit: 处理冲突
3c8ecb3 HEAD@{17}: commit: 解决更新问题

第二步执行 git reset --hard 【 找第一列的id, 1796d7f HEAD@{6}: commit (merge): pull 最新代码 。id为 1796d7f】

git reset --hard 1796d7f
问题在哪里,问题在这里

当执行 git pull --rebase origin master,有这样的提示

dell@DESKTOP-9UF9FEN /xxxx/work/xxx/gateway (detached HEAD|REBASE 5/16)

重点:detached HEAD|REBASE 5/16

重点:detached HEAD|REBASE 5/16

重点:detached HEAD|REBASE 5/16

第一步 通过创建临时分支解决分支的detached状态

git checkout -b new_tmp
Switched to a new branch 'new_tmp'

第二步 切换到需要push的远程分支

git checkout xxxx/dev-v1.0.1
Note: checking out 'xxxx/dev-v1.0.1'.

第三步 创建本地分支

git checkout -b dev-v1.0.1
Switched to a new branch 'dev-v1.0.1'

第四步 把临时分支的代码合并到本地分支

git merge new_tmp
Updating 5fcacb6..1796d7f

第五步 push代码到远程分支

git push xxxx dev-v1.0.1

总结

要养成这样的习惯

要探求根源

PS: 吾' 探求根源

10-01 01:27