git 快进一次提交

git fast-forward one commit

* 9dbd857 (hotfix-correct-java-jdk-path, feature/add-ansible-galaxy-requirements-file) requirements.yml: adds maven and nodejs requirements
* 1643619 (QOL-1640-enable-vpc-peering) roles/ansible-linux-commons: change value of hostname in cloud-init
* b5fd2a4 roles/bamboo-agent: add bitbucket ssh host key to /etc/ssh/ssh_known_hosts
* d5cc1f7 vpc cfn template: produce outputs conditionally
* 3b87efe vpc cfn template: use csv for subnet/AZ mapping
* 2e93096 roles/bamboo-agent: Install chrome on agents
* 9aeb07e roles/bamboo-agent: install chromium browser
* 89e852d (HEAD -> feature/QOL-1649-install-chrome) README: display the current directory structure of inventories
* 1f55c4b inventories/test: define root volume size
* 07d902e bamboo-ec2 cfn: specify root volume size

这是我的(最近)历史。

我希望 feature/QOL-1649-install-chrome 向上移动一个提交,到 9aeb07e

我试过 cherry pick,但后来我得到了 "copy" 那个提交到 feature/QOL-1649-install-chrome 分支上。但是我想要的(我认为)是快进。

git checkout feature/QOL-1649-install-chrome
git merge --ff-only 9aeb07e

git reset --hard 9aeb07e

而不是合并。

你可以git reset,但为了一般的安全和清洁,我更喜欢使用git merge --ff-only。要使用它,检查你想要快进的分支(你已经),然后 运行 git merge --ff-only <commit-hash>:

git merge --ff-only 9aeb07e

我经常使用这个命令,所以我为它做了一个别名,git mff(合并快进)。


编辑,2020 年 11 月:请注意,您不必在此处使用原始哈希 ID; git mff origin/somebranch 也很好用。您可以在此处使用原始哈希。这是 Git 中一般规则的一部分:如果可以使用原始哈希,则可以使用分支名称、标签名称、远程跟踪名称等。

围绕此一般规则有一些特殊情况,特别是,如果您将原始哈希 ID 与 git checkout 命令一起使用,您将得到 Git 所谓的 detached HEAD,而如果你使用带有 git checkout 的分支名称,你将“在分支上”(即 attached HEAD:与分离相反,尽管 Git 文档从未这样称呼它:它只是说“在分支上”)。 Git 2.23 及更高版本中的新 git switch 命令在这方面做得更好,因为如果它要切换到分离头模式,它要求您添加 --detach 选项。但是,有了这个 git mff 别名,就没有什么特殊情况需要担心了。