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

  • 本文关键字:git commit add 是否 cherry-pick git
  • 更新时间 :
  • 英文 :


例如,当前处于分支master状态为干净:

一个:

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

那么CommitDateAuthorDate是一样的

乙:

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:

三:

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本质上是一样的吗?有没有办法弄清楚提交是由AC完成的?

在 C 中,您正在执行git cherry-pick -n CCCC,然后git commit -m "asdf"-n 标志表示no-commit这意味着从另一个分支中挑选的提交不会提交,但对提交的必要更改是在当前工作分支中进行的。因此,当git commit -m "asdf"完成后,会进行新的提交。

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

当挑选多个提交到的效果时,这很有用 您的索引在一行中。

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

所以在 C 中,提交 id 是指 C 所做的提交。 在 B 中,提交 id 是指 A 进行的提交。

最新更新