提交本地分支至远程仓库的版本回退问题
昨天,实习时将远程仓库的master搞乱了后,尝试去回退版本。
打开“黑匣子”,查看原因
1.下午的15:17,提交修订版本后,此时远程仓库的代码没有任何问题。
commit cd91d900ec3ad53427131558706d349deac95781 (origin/old, origin/branch2)
Author: Dennis <Denniswangyongle@126.com>
Date: Thu Aug 6 15:17:34 2020 +0800
fix: <E9><87><8A><E6><94><BE><E8><BF><87><E6><BB><A4><E5><99><A8>
2.下午17:47,我脑子进水了,新建一个one分支,这个分支是随便的一个项目,并在远程仓库提交申请后,成功合并。于是开始了一切挽救的措施。
commit 328b781a15eeca7f7b48167e9e7c71d72b685fee
Merge: cd91d90 f27e612
Author: Administrator <admin@example.com>
Date: Thu Aug 6 17:47:24 2020 +0800
Merge branch 'one' into 'master'
feat(something):request merge [one]
See merge request cnpc/addresslist!1
3.下午18:44使用idea的版本回退,成功回退到就版本,申请merge,这才解决问题。
在版本回退的时候,务必注意。在分支上进行回退,然后提交到远程仓库。再开启一个项目从远程仓库下载下来。可以进行测试,也可以和自己备份的项目进行回退,因为本地的还没有被破坏。方可成功回退。令注意选择回退的版本的三种类型。
一些问题
1.hard mixed soft都是什么?
–soft
Does not touch the index file or the working tree at all (but resets the head to <commit>
, just like all modes do). This leaves all your changed files “Changes to be committed”, as git status
would put it.
–mixed
Resets the index but not the working tree (i.e., the changed files are preserved but not marked for commit) and reports what has not been updated. This is the default action.
If -N
is specified, removed paths are marked as intent-to-add (see [git-add1]).
–hard
Resets the index and working tree. Any changes to tracked files in the working tree since <commit>
are discarded.
工作区 暂存区都会被回退。
2.在idea点击随便一个版本可以在右边看到它的详细信息,而下面这个红色文字代表什么意思呢?
3.但其中可以发现涉及到的有两个master一个是origin/master另一个是master。这两个代表的是一个意思吗?
这个命令来源于廖雪峰老师的博客,目的是添加远程库。从这句话也能看出master是远程仓库的名字,所以我也可以叫小王,小李,小张。
git remote add origin git@github.com:michaelliao/learngit.git
4.关于提交到远程仓库
gitlab似乎在权限不足的情况下不能从自己的master提交到远程master,需要经过创建分支,再从分支上申请远程合并。查了很多这方面的东西,没有得到很清楚的答案,在此记录一下。