目录
错误内容
# git push
To gitlab.aipark.com:aits/data-intergration.git
! [rejected] zjk-prod-20230823 -> zjk-prod-20230823 (fetch first)
error: failed to push some refs to 'gitlab.aipark.com:aits/data-intergration.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
出现这个错误提示的原因是,你和其他人修改了同一个文件,而且别人比你先提交。所提此时你在本地执行git pull和git push都无法完成。
一、执行rebase操作
1、此时你需要执行下面命令(--rebase顾名思义,重新校准基础版本,将本地的基础版本更新为git上的基础版本)【注意执行这个命令之前你需要将本地代码全部暂存】
// master指的是当前修改的分支,请修改当前你所修改的分支名称(不然会出人命的)
git pull origin zjk-prod-20230823 --rebase
2、一般情况下执行完这个,如果没有冲突,后面就可以正常进行更新和提交操作了。
3、但是如果代码有冲突(别人和你修改了同一行代码,导致git不能自动合并),你会发现执行完之后本地版本变成了:5eec00e ±✚ >R,类似于这样的,说明rebase失败了,命令会提示哪些文件没有rebase成功,你需要手动将这些冲突合并。
4、等待所有冲突文件修改完成,暂存所有文件。
5、执行命令
git rebase --continue
执行命令后可以正常提交代码到 zjk-prod-20230823分支。
6、如果依然存在冲突文件,重复步骤3、4、5,直到所有冲突修改完毕就可以了,最后就能正常提交更新了。
步骤1的rebase命令,一定要注意,网上给出的都是git pull origin master --rebase,指的是将本地基础版本修改为远程分支zjk-prod-20230823最新版本,如果你本地修改的是develop或者其他分支,就会导致代码错乱,此时需要恢复rebase操作,取消rebase操作,操作如下:
二、取消rebase操作
git pull origin master --rebase操作是重新校准本地基础版本,如果修改了一半,想要取消如何操作,或者是发现自己rebase错了分支如何撤销。
1、git pull origin master --rebase在冲突的情况下会出现(zjk-prod-20230823|REBASE 2/8)冲突的提示,说明有8个冲突文件需要修改。(如何解决这个问题,请移步这里)
2、取消rebase执行命令
git rebase --abort
3、查看自己修改的rebase记录日志
git reflog
b021abd (HEAD -> zjk-prod-20230823, origin/zjk-prod-20230823) HEAD@{0}: pull origin zjk-prod-20230823 --rebase (finish): returning to refs/heads/zjk-prod-20230823
b021abd (HEAD -> zjk-prod-20230823, origin/zjk-prod-20230823) HEAD@{1}: pull origin zjk-prod-20230823 --rebase (pick): 添加白名单
da0275b HEAD@{2}: pull origin zjk-prod-20230823 --rebase (start): checkout da0275b5cb8a090239768a7e0f3c29b136a485d2
49b6fa0 HEAD@{3}: commit: 添加白名单
93e7e5e HEAD@{4}: pull: Fast-forward
b74993c HEAD@{5}: checkout: moving from ts_kp_20230411 to zjk-prod-20230823
1556aa1 (ts_kp_20230411) HEAD@{6}: pull: Fast-forward
f6af3a8 HEAD@{7}: pull: Fast-forward
7a94afa HEAD@{8}: pull: Fast-forward
c904469 HEAD@{9}: pull: Fast-forward
2c810f3 HEAD@{10}: pull: Fast-forward
27437d7 HEAD@{11}: pull: Fast-forward
11e6536 HEAD@{12}: pull: Fast-forward
915a77e HEAD@{13}: pull: Fast-forward
af187d5 HEAD@{14}: commit: 修改pom依赖,移除不必要的依赖
2edffd1 HEAD@{15}: pull origin ts_kp_20230411: Fast-forward
245bf31 HEAD@{16}: pull origin ts_kp_20230411: Fast-forward
5f66ed7 (origin/zjk-pre-1.0.0, zjk-pre-1.0.0) HEAD@{17}: checkout: moving from zjk-pre-1.0.0 to ts_kp_20230411
5f66ed7 (origin/zjk-pre-1.0.0, zjk-pre-1.0.0) HEAD@{18}: clone: from gitlab.aipark.com:aits/data-intergration.git
4、观察日志中的记录,这里发现是在HEAD@{2}执行的rebase,然后执行恢复命令(注意是执行rebase命令的前一个步骤即:HEAD@{3})
git reset --hard HEAD@{3}
5、如果想回滚到其他提交点,可以通过命令查看,如查看最近2次提交
git log -n 2
# git log -n 2
commit da0275b5cb8a090239768a7e0f3c29b136a485d2
Merge: 93e7e5e af72411
Author: aaa <aaa@xxx.com>
Date: Thu Sep 7 05:34:14 2023 +0000
Merge branch 'ts_kp_20230411' into 'test'
minio上传图片接口
See merge request aits/data-intergration!10
commit af72411206738273c79b585270063dca88ccb67c (origin/test)
Author: aaa <aaa@xxx.com>
Date: Thu Sep 7 10:32:02 2023 +0800
minio上传图片不用获取url
如果想回退到指定提交点,执行对应的commit id
git reset --hard af72411206738273c79b585270063dca88ccb67c