我意外地在master上工作,如何将对分支重置master所做的所有更改转移到上一次提交?

问题描述

我还没有提交我的更改,因为我意识到我正要提交而正在研究master。我想将所有未提交的更改移动到新分支上,然后将master重置为最后一次提交。我敢肯定一定有办法做到这一点,但是我对git不熟悉(每次使用它都会让我感到焦虑,因为我会弄乱某些东西并破坏应用程序)。如果有帮助,我会使用sourcetree。

解决方法

如果尚未暂存或提交更改,并且本地master分支已经更新,则只需创建一个新分支即可。

git checkout -b newbranch

如果您需要首先与上游主服务器同步,则您的提交可能会与上游更改冲突。首先,只需尝试

git pull origin master

(如果您使用的是{{1},而不是upstream)。如果您没有收到任何警告,则您的origin已更新。如果您得到警告,master将拒绝拉动,并且您需要做出安排以协调源/上游与您未提交的更改之间的差异。第一步,存储您的更改,然后继续;

git

在继续进行并提交之前,此时可能需要解决一些冲突。

尽管通常创建一个新的本地分支并提交您拥有的东西会更安全,然后然后切换回git stash save -m "put a useful comment so you know what this is" git pull origin master git checkout -b newbranch git stash pop 并查看需要采取哪些措施来解决所有冲突与上游。

,

如果您尚未提交更改,那是最简单的情况;您可以在其中创建一个新分支并提交更改。

git checkout -b name_of_branch

然后像往常一样添加并提交。

,

我想将所有未提交的更改移到新分支上

checkout -b new_branch将创建并签出一个新分支,而不会丢失您的更改

然后将主服务器重置为最后一次提交

git branch -f master origin/master会将母版重置为存储库中原始/母版的位置。

,
1 . make new branch from master (git checkout -b branch_name) 
2 . pull newest from master (git pull origin master) 
3 . checkout into master branch (git checkout master) 
4 . check the log (git log) 
5 . reset into the last log (git reset --hard #log number#) ex: git reset --hard oij349efnj43t8 
6 . push the last commit (git push --force origin #log number#:master) ex: git push --force origin oij349efnj43t8:master