Git:如何在没有所有历史记录的情况下选择提交

Git:如何在没有所有历史记录的情况下选择提交,git,git-commit,git-rebase,git-cherry-pick,Git,Git Commit,Git Rebase,Git Cherry Pick,我想将当前回购中的特定提交中的一些特定更改添加到上游回购中 像这样运行: git向上游推送: 添加提交和所有以前的更改 运行类似于 git checkout -b new-branch git pull <remote> <upstream branch> branch is git cherry-pick <commit hash> git push <remote> new-branch 还写入以前的所有更改 我只想将该承诺的具体更改写入上

我想将当前回购中的特定提交中的一些特定更改添加到上游回购中

像这样运行: git向上游推送:

添加提交和所有以前的更改

运行类似于

git checkout -b new-branch 
git pull <remote> <upstream branch> branch is
git cherry-pick <commit hash>
git push <remote> new-branch
还写入以前的所有更改

我只想将该承诺的具体更改写入上游回购协议,因此它不包括我当前回购协议中以前的承诺所做的更改,这些更改不在上游回购协议中


关于StackOverflow,有很多关于cherry pick和rebase的信息,但都没有回答这个非常具体的问题

您可以在上游回购中从远程分支中创建本地分支,然后进行cherry pick

假设上游是上游远程服务器的名称,则可以执行以下操作:

git fetch upstream
git checkout -b new-branch upstream/<upstream branch>
git cherry-pick <commit hash>
git push upstream new-branch

超级的这起作用了。我唯一需要添加的是git cherry pick-continue,在解决了一些冲突之后,再将其推向上游。非常感谢,因为好几个小时没有人能回答这个问题。你的解决方案是最好的。
git remote -v