问题
在本地分支A上做了一些改动但最后没用了,要删掉。
改动太多,回退代码到怀疑人生后,发现还有一些改动,除非对照着远程分支 + git status ,就太麻烦了。
解决
我对这种情况的解决方案:
1. 提交改动到本地分支A(必须先commit,否则会把改动带到切换后的分支)
2. 从远程分支拉取一个新本地分支B
3. 删除本地分支A
4. 重命名本地分支B为A
就当一切都没发生过,就当你从没出现在我的生命里。
## 1.查看当前分支状态,发现有两个commit 未提交到远程分支,但是这两个 commit 需要删掉。
## 如果还未提交到本地的话,命令是:
## git add -A 保存修改;
## git commit -m "修改内容" 提交到本地分支。
$git status
On branch develop
Your branch is ahead of 'origin/develop' by 2 commits.
(use "git push" to publish your local commits)
## 2. 从远程分支develop拉取新本地分支 develops
$git checkout origin/develop -b develops
Branch 'develops' set up to track remote branch 'develop' from 'origin'.
Switched to a new branch 'develops'
## 查看是否生效,可以看到,我们本地分支切换到了 develops ,且依赖的远程分支是 develop
$git status
On branch develops
Your branch is up to date with 'origin/develop'.
nothing to commit, working tree clean
## 3.删除原来的本地分支 develop (即做过改动不想要了的分支)
$git branch -d develop
error: The branch 'develop' is not fully merged.
If you are sure you want to delete it, run 'git branch -D develop'.
## 上面命令会提示你是否删除,你可以直接使用下面命令,强制删除。
$git branch -D develop
Deleted branch develop (was 2b94bcb).
##4.修改当前本地分支develops名字为 develop,没有强迫症的话,不改也可以,都不影响的。
##(我主要是想当一切都没发生过)
$git branch -m develops develop
## 查看是否生效,可以看到当前分支名为 develop 且依赖远程分支 develop ,并且当前分支是远程分支保存的最新代码。
$git status
On branch develop
Your branch is up to date with 'origin/develop'.
nothing to commit, working tree clean
写下来,以备不时之需。
网友评论