Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git隐藏和分支以前的工作版本?_Git - Fatal编程技术网

git隐藏和分支以前的工作版本?

git隐藏和分支以前的工作版本?,git,Git,我创建了一个分支a,进行了一些更改,并在“一切正常”时提交了。 然后我继续在A工作,但一切都变得相当混乱,然而我在混乱中有很好的直觉(也许这不是lol) 是否有一个表格可以隐藏混乱,创建一个新的分支机构B,从分支机构a中的“一切正常”开始,然后继续在分支机构B中工作?我想稍后再回到分支A的混乱状态,希望能合并。如果我正确理解您的问题 #Stash those changes git stash #Create a new branch - all changes are now stashed

我创建了一个
分支a
,进行了一些更改,并在“一切正常”时提交了
。
然后我继续在A工作,但一切都变得相当混乱,然而我在混乱中有很好的直觉(也许这不是lol)


是否有一个表格可以
隐藏混乱,创建一个新的
分支机构B
,从分支机构a
中的“一切正常”
开始,然后继续在分支机构B
中工作?我想稍后再回到分支A的混乱状态,希望能合并。

如果我正确理解您的问题

#Stash those changes
git stash
#Create a new branch - all changes are now stashed
git checkout -b branchB
#Restore stashed changes
git stash pop
#Commit "mess" on branch B
git commit -a -m "what a terrible mess..."
#Change to branch A
git checkout branchA

正如您所说,稍后需要合并。

如果您想创建一个新分支,则无需隐藏。您可以从最新的良好提交开始创建新分支。 在
分支A
中,使用
git log
获取最新正确提交的哈希值。然后运行:

git checkout <branchA_hash> -b branchB
git签出-b branchB
这将创建一个名为
branchB
的新分支,在您选择的提交时更新

在任何时候,只要再次检查一下,您就可以回到您混乱的分支A。

您可以使用

git checkout <A_Branch> -b Bbranch
git签出-Bbranch

他不想要branchA_hash,他想要branchA_hash~X,回到之前在branchA上看到的“一切正常”点,这正是我的意思
branchA_hash
不是指向HEAD的指针,而是最新良好提交的哈希。