Git跟踪远程分支

Git跟踪远程分支,git,Git,我有一个问题, 我一直在读这方面的文章,但我不确定哪种解决方案是正确的,到目前为止,我无法测试哪种解决方案是正确的。 所以,我在一个远程分支上工作,改变事情,其他人也在这里工作。 当我做了,我想推动,但其他人已经改变了分支,我不能这样做。每当我拉它的时候,我都想合并分支。 有没有其他方法可以在不合并的情况下从分支获取最新提交,然后推送我的更改?如果要查看最新的上游分支,可以获取它(此处不合并)并创建临时分支: git fetch git checkout -b tmp origin/maste

我有一个问题, 我一直在读这方面的文章,但我不确定哪种解决方案是正确的,到目前为止,我无法测试哪种解决方案是正确的。 所以,我在一个远程分支上工作,改变事情,其他人也在这里工作。 当我做了,我想推动,但其他人已经改变了分支,我不能这样做。每当我拉它的时候,我都想合并分支。
有没有其他方法可以在不合并的情况下从分支获取最新提交,然后推送我的更改?

如果要查看最新的上游分支,可以获取它(此处不合并)并创建临时分支:

git fetch
git checkout -b  tmp origin/master
这样,您可以在
tmp
master
(您自己的本地分支)之间来回切换,并比较它们的差异(术语)

请注意,如果不强制推送并删除上游历史记录,您将无法推送更改

最好的做法是将您的
master
分支重新设置在
origin/master
之上:

git pull --rebase
(合并将在那里发生,但更重要的是,您自己的提交将在上游
主分支的最新版本上重播)


然后您就可以推送自己的更改。

是否有其他方法可以从分支获取最新的提交,而无需合并,然后推送我的更改?你为什么要这样做?我想获取最新的更改,然后推送我自己的更改。如果我理解正确,我已经在远程分支tmp上检查了路由,做了一些更改,现在如果我执行git fetch,我将无法推送我的更改?我必须做git pull——rebase,然后我可以推?
tmp
不是一个远程分支:它基于一个,但它是一个本地分支。只需一个标记,您就可以看到
origin/master
的外观。对于rebase,如果您想要推送您的提交,它是强制性的:您甚至不必创建
tmp
:您可以获取,然后重新BASE
master
origin/master
:这就是
git pull--rebase
的作用。