例如,当前在分支master
中,状态是干净的:
答:
echo "test" >> README.md
git add README.md && git commit -m "asdf" ## commit id: AAAA
然后CommitDate
和AuthorDate
相同
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
然后CommitDate
和AuthorDate
不同
而不是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"
然后CommitDate
和AuthorDate
相同
除了哈希ID之外,A
和C
基本相同吗?无论如何都要确定提交是由A
还是C
??
答案 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。
提交的