在服务器上有一个 git 控制的文件夹,其中主分支被签出,整个文件堆被修改而未被提交。有没有办法将更改提交到一个单独的分支,这样我就可以返回到一个干净的版本?
即我想有效地撤销所有这些人的更改,但是把它们存储在另一个机会中,这样如果那个人想要他们的更改,他们就可以切换到那个分支。
(是的,我知道 Git 不是这样设计的,但这就是我的情况!)非常感谢你的建议。
你总是可以把你的变化藏起来。
git stash git checkout -b bravenewmaster git stash apply
还要记住,如果您提交到“错误的”分支,您总是可以将该分支移回,因为分支只不过是一个指向提交的指针。
首先,移动到基于当前 HEAD 的不同分支是这样执行的:
git checkout -b newbranch
提交所有更改(假设没有新添加的文件,否则 git add它们) :
git add
git commit -a
回到主分支:
git checkout master
以前未提交的更改将全部位于新分支上,而 master 仍然处于没有这些更改的状态。
这种方法很有用:
git checkout -B <new_branch> <start point>
地点:
<new_branch>
my_branch
<start point>
master
-B
-b
-m
更多细节参见: man git-checkout。
man git-checkout