Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/24.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_Diagram_Commit - Fatal编程技术网

git签出究竟如何影响提交和隐藏?

git签出究竟如何影响提交和隐藏?,git,diagram,commit,Git,Diagram,Commit,我没有在在线git中找到我的答案 很明显,git签出具有破坏性,因为它会丢弃本地修改,但它是否也会通过更改树的结构来破坏提交?例如,假设我有三个提交 a <-- b <-- c | HEAD + stash c a提交不引用子级,只引用父级。而且不止一个孩子可以有同一个父母。所以我认为答案是“结帐”应该被视为一个树的遍历加上修剪,因为所有的孩子都会永久丢失。没有强调这一点。“不引用”和“擦除”是完全不同的事情。好吧,现在我明白了。gi

我没有在在线git中找到我的答案

很明显,git签出具有破坏性,因为它会丢弃本地修改,但它是否也会通过更改树的结构来破坏提交?例如,假设我有三个提交

a <-- b <-- c
            |
           HEAD

+ stash c

a提交不引用子级,只引用父级。而且不止一个孩子可以有同一个父母。

所以我认为答案是“结帐”应该被视为一个树的遍历加上修剪,因为所有的孩子都会永久丢失。没有强调这一点。“不引用”和“擦除”是完全不同的事情。好吧,现在我明白了。git签出只移动头部,而不移动“主”。git log master显示完整的分支。reflog可能会成为您的朋友
a <-- b <-- c
      |
     HEAD

+ stash b
a <-- b
      |
     HEAD

+ stash b