我不小心在处理 master,如何将我所做的所有更改转移到分支重置 master 到上次提交?



我还没有提交我的更改,因为我意识到我正在处理 master,就像我即将提交一样。我想将所有未提交的更改移动到新分支上,然后将 master 重置为上次提交。我确信一定有一种方法可以做到这一点,但我不熟悉 git(每次我使用它时,它都会让我担心我会搞砸一些东西并破坏应用程序)。如果有帮助,我会使用源代码树。

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

git checkout -b newbranch

如果需要先与上游主节点同步,则提交可能会与上游更改发生冲突。 首先,只需尝试

git pull origin master

(或者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

在你继续提交之前,此时可能会有一些冲突需要解决。

尽管通常创建一个新的本地分支并提交您拥有的内容会感觉更安全,然后切换回master并查看需要做些什么来解决与上游的任何冲突。

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

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

最新更新