git cherry-pick -n和git commit是否等同于git add和git commit

时间:2018-03-07 07:37:33

标签: git

例如,当前在分支master中,状态是干净的:

答:

echo "test" >> README.md
git add README.md && git commit -m "asdf" ## commit id: AAAA

然后CommitDateAuthorDate相同

B:

git checkout -b asdf
echo "test" >> README.md
git add README.md && git commit -m "asdf" ## commit id: BBBB
git checkout master
sleep 100 && git cherry-pick BBBB

然后CommitDateAuthorDate不同

而不是B,如果我做C:

C:

git checkout -b asdf
echo "test" >> README.md
git add README.md && git commit -m "asdf" ## commit id: CCCC
git checkout master
sleep 100 && git cherry-pick -n CCCC && git commit -m "asdf"

然后CommitDateAuthorDate相同

除了哈希ID之外,AC基本相同吗?无论如何都要确定提交是由A还是C ??

完成的

1 个答案:

答案 0 :(得分:0)

在C中,您正在执行git cherry-pick -n CCCC,然后git commit -m "asdf",用于cherry-pick的-n标志表示no-commit,这意味着从其他分支获取的樱桃未提交,但提交的必要更改在当前工作分支中进行。因此,git commit -m "asdf"完成时会进行新的提交。

  

-n 或    - no-commit :通常命令会自动创建提交。此标志应用必要的更改来挑选命名提交   您的工作树和索引,但不进行提交。在   此外,使用此选项时,您的索引不必匹配   HEAD提交。樱桃挑选是在开始状态下完成的   你的索引。

     

当挑选多个提交效果时,这非常有用   你的索引连续。

在B中,您正在执行git cherry-pick BBBB而没有-n标志,因此使用A的提交自动进行提交。

所以在C中,commit id指的是C的提交。 在B中,commit id指的是由A。

提交的