Git拉入索引

Git拉入索引,git,merge,Git,Merge,有没有办法将远程更改拉入索引,而不是直接创建新的提交 理想情况下,这就像应用远程内容的补丁,但不修改本地历史记录 谢谢git fetch将从远程获取更改,但不会将其与您的主机分支合并。它将在远程跟踪分支中。然后可以手动合并它。git pull同时执行这两个操作。git fetch将从远程获取更改,但不会将其与主分支合并。它将在远程跟踪分支中。然后可以手动合并它。git pull将同时执行这两个操作。问题是,您下一次拉取远程更改时,应该从远程更改的历史记录中的哪一点生成修补程序?这正是合并要解决的

有没有办法将远程更改拉入索引,而不是直接创建新的提交

理想情况下,这就像应用远程内容的补丁,但不修改本地历史记录


谢谢

git fetch
将从远程获取更改,但不会将其与您的
主机
分支合并。它将在远程跟踪分支中。然后可以手动合并它。
git pull
同时执行这两个操作。

git fetch
将从远程获取更改,但不会将其与
主分支合并。它将在远程跟踪分支中。然后可以手动合并它。git pull将同时执行这两个操作。

问题是,您下一次拉取远程更改时,应该从远程更改的历史记录中的哪一点生成修补程序?这正是合并要解决的问题,合并提交指示到目前为止已将哪个远程版本应用于本地分支


话虽如此,如果您执行
git fetch
git merge--no commit
,合并将在您的工作区(和索引)中完成,但不会提交,元数据将保持在一种状态,以便在您提交时,它将被标记为合并提交。这就是您所需要的吗?

接下来的问题是,您要从远程设备的历史记录中的哪一点提取远程更改,它应该从哪一点生成补丁?这正是合并要解决的问题,合并提交指示到目前为止已将哪个远程版本应用于本地分支


话虽如此,如果您执行
git fetch
git merge--no commit
,合并将在您的工作区(和索引)中完成,但不会提交,元数据将保持在一种状态,以便在您提交时,它将被标记为合并提交。这就是您需要的吗?

我不太确定您想要的工作流程是什么,但您可以获取远程更改,而不会影响当前分支或索引

git fetch
然后,您可以将获取的更改合并到当前索引中,而无需设置合并提交,但这是一个相当模糊且不寻常的操作

git read-tree -m HEAD origin/remote-branch
如果远程分支是当前头部的快进分支,则二叉树版本最好,如果不是,则三向合并选项可能更好

git read-tree -m $(git merge-base HEAD origin/remote-branch) HEAD origin/remote-branch

有关差异的详细信息,请阅读git Read tree的手册页。

我不太确定您的预期工作流程是什么,但您可以获取远程更改,而不会影响当前分支或索引

git fetch
然后,您可以将获取的更改合并到当前索引中,而无需设置合并提交,但这是一个相当模糊且不寻常的操作

git read-tree -m HEAD origin/remote-branch
如果远程分支是当前头部的快进分支,则二叉树版本最好,如果不是,则三向合并选项可能更好

git read-tree -m $(git merge-base HEAD origin/remote-branch) HEAD origin/remote-branch

请阅读git Read tree的手册页,了解差异的详细信息。

我一直来到这一页,却错过了正确的答案,因为它在评论中

git-pull --no-commit git@github.com:username/project.git

我一直来到这一页,却错过了正确的答案,因为它在评论中

git-pull --no-commit git@github.com:username/project.git

看一看。您可能需要调整配置以避免合并提交。

查看。您可能需要调整配置以避免合并提交。

我怀疑这是OP真正想要的(合并到索引和工作树,但不提交)。请注意,您只需执行
拉取--no commit
;它被传递到
merge
。我怀疑这就是OP真正想要的(合并到索引和工作树,但不提交)。请注意,您只需执行
拉取--no commit
;它被传递到
merge