当前回答
您可以从远程仓库获取, 查看差异, 然后拉动或合并 。
这是被称作远程仓库的示例origin
和支派,和支派,master
跟踪远程分支origin/master
:
git checkout master
git fetch
git diff origin/master
git rebase origin master
其他回答
git pull
获取承诺后尝试自动合并 。上下文敏感,因此所有被拉动的承诺都将合并为您目前活跃的分支。git pull
自动合并承诺未经审查,而不先审查。。如果你不仔细管理自己的分支,你可能会遇到频繁的冲突。git fetch
收集当前分支中不存在的目标分支的任何承诺,并将其存储在本地仓库中然而,它不会与您当前分支合并。如果您需要不断更新您的仓库,但正在研究一些更新文件时可能中断的文件。要将承诺整合到当前分支中,您必须使用git merge
之后。
和差异之间的差别GIT 抓取和GIT 调可用下列假设情况解释:(记住图片比文字更响亮!
让我们举一个例子来说明您正在与团队成员一起开展一个项目。 因此,该项目将有一个主要分支, 所有贡献者都必须将该项目推到他们自己的本地仓库, 然后在这个本地分支上修改/ 添加模块, 然后推回主分支 。
那么,初次初次国家当您在本地存储库中将主项目 提前启动时, 两支分支中的两支分支将变成这样( ) 。 ( ) @ info: whatsthisA
, B
和C
是项目已完成的模块)
现在,你已经开始研究新模块(假设)D
),当你们完成D
您想要将模块推到主分支中, 但是同时发生的情况是, 您的队友之一开发了新模块E
, F
修改和修改C
.
所以现在发生的事情是 您的本地存储库 缺乏项目最初进展的背后 从而推动您对主要分支的更改 可能导致冲突 并可能导致您的模块D
发生故障。
为了避免此类问题,并与项目的最初进展平行工作,有两种方式:
1. Git Fetch-(吉特接驳-)这将下载所有对本地分支中不存在的源/主分支工程所做的更改。 并将等待 Git 合并命令应用您仓库或分支的更改 。
现在您可以仔细监视文件, 然后将其合并到仓库。 您也可以修改D
因修改而需要时C
.
2. Git Pull-(吉特拉拉) - (吉特拉拉)这将更新您的本地分支, 使用源/ 主分支, 即它实际上所做的是 Git Fetch 和 Git 的组合 。但这可能引发冲突, 因此建议使用Git Pull,
简简单简的答案是:git pull
简单git fetch
和继 继 继 继 继 继git merge
.
必须指出,git pull
会不管你喜不喜欢自动合并。这当然可能导致合并冲突。让我们假设你的远程是origin
并且你的分支是master
。如果您git diff origin/master
在拉车之前,你应该对潜在的合并冲突有某种了解,并且可以据此为你的当地部门做好准备。
除了拉和推,一些工作流程涉及git rebase
,例如这一条,我从相关条款中转述如下:
git pull origin master
git checkout foo-branch
git rebase master
git push origin foo-branch
如果你发现自己处于这种情况, 你可能会被诱惑git pull --rebase
除非您真的知道自己在做什么 否则我建议不要这么做man
页面git-pull
版本, 版本2.3.5
:
这是一个潜在危险的操作模式。 它重写历史, 当您已经发布历史时, 历史并不是好兆头。 除非您仔细阅读了 git- rebase(1) , 否则不要使用此选项 。
人们必须牢记 git 的性质。 您有远程和本地分支( 不一定相同 ) 。 与其他源控制系统相比, 这可能会有点令人困惑 。
通常当您检出远程时,会创建本地副本,跟踪远程。
gitreach 将会与远程分支合作并更新您的信息 。
实际上,如果其他SWES同一个部门工作,就属于这种情况,而小型项目----一个部门----一个项目设想方案的情况很少。
您对本地分支的工作仍然完好无损 。 为了将更改带回您的本地分支, 您必须合并/ 重订远程分支的更改 。
git拉动正好就是这两个步骤(即 -- -- rebase to rebase rebase 而不是合并)
如果您的本地历史和远程历史有冲突, 您将被迫在一小块按键发布您的更改时进行合并 。
因此,这真正取决于你的工作环境的性质和使用经验。
git fetch
从远程服务器将代码从远程服务器撤回到本地仓库的跟踪分支。如果您的远程服务器被命名origin
然后,这些分支将居其中;origin/
,例如,origin/master
, origin/mybranch-123
等等。这些不是你们的现树枝,而是你们的现树枝。当地当地服务器上那些分支的复制件
git pull
是否为 a 的git fetch
但当时并且,还有将跟踪分支的代码合并到您当前本地版本的该分支中。如果您尚未准备好进行该修改,只需git fetch
头一次。
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的git添加?
- Rubymine:如何让Git忽略Rubymine创建的.idea文件
- Gitignore二进制文件,没有扩展名
- Git隐藏错误:Git隐藏弹出并最终与合并冲突
- 了解Git和GitHub的基础知识
- 没有。Git目录的Git克隆
- Git与Mercurial仓库的互操作性
- 忽略git中修改(但未提交)的文件?
- “git restore”命令是什么?“git restore”和“git reset”之间有什么区别?
- Git合并与强制覆盖
- Git拉另一个分支
- 在Bash命令提示符上添加git分支
- 如何更改Git日志日期格式
- git pull -rebase和git pull -ff-only之间的区别