【发布时间】:2018-03-08 03:29:59
【问题描述】:
我将一些东西推送到master 分支,然后运行git pull --rebase,我得到了一个强制更新,然后我发现我的最后一次提交丢失了,这是我的命令行历史记录:
➜ ljmall git:(master) git commmit -m "refactor: enable self checkout on every environments"
[master 694c4c0f9] refactor: enable self checkout on every environments
3 files changed, 2 insertions(+), 17 deletions(-)
➜ ljmall git:(master) gp ----> (git push)
Counting objects: 9, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 1.36 KiB | 1.36 MiB/s, done.
Total 9 (delta 8), reused 0 (delta 0)
To git.dmright.com:/opt/git/ljmall.git
fd72e86d7..694c4c0f9 master -> master
➜ ljmall git:(master) gst ----> (git status)
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
➜ ljmall git:(master) veil pull ----> (git pull --rebase)
From git.dmright.com:/opt/git/ljmall
+ 694c4c0f9...fd72e86d7 master -> origin/master (forced update)
First, rewinding head to replay your work on top of it...
我不知道为什么 git 服务器接受了我的提交,但在 git pull --rebase 之后,它就不见了。
我不确定我能否重现此问题,因为这是我第一次,在此之前我提交了 100 多次没有任何问题。
我的Git版本是2.16.2,Git服务器版本是2.14.2,我搭建了git服务器:git clone --mirror git@github.com:/xxx/xxx.git
我也是用 PyCharm IDE,不知道会不会和这个问题有关。
获取 URL 与推送 URL 相同。
我已经尝试通过 PyCharm 功能恢复我丢失的文件修改,所以我再次提交并推送,没有任何问题,这是我的命令行历史记录:
➜ ljmall git:(master) ✗ git add .
➜ ljmall git:(master) ✗ git commit -nm "refactor: enable self checkout on every environments"
[master bc0dbb78e] refactor: enable self checkout on every environments
3 files changed, 2 insertions(+), 17 deletions(-)
➜ ljmall git:(master) gp
Counting objects: 9, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 1.36 KiB | 1.36 MiB/s, done.
Total 9 (delta 8), reused 0 (delta 0)
To git.dmright.com:/opt/git/ljmall.git
fd72e86d7..bc0dbb78e master -> master
➜ ljmall git:(master) git pull --rebase
Already up to date.
Current branch master is up to date.
【问题讨论】:
标签: git