当前回答
Git允许在较新的承诺之后适用按时间顺序排列的旧承诺。 因此,存放库之间转移承诺的行为分为两步:
正在从远程分支复制新承诺, 复制本地副本中的此远程分支 。
(收回业务)
master@remote >> remote/origin/master@local
整合对地方分支机构的新承诺
(内购外业务)
remote/origin/master@local >> master@local
第二步有两种方法,你可以:
- 在上一个共同祖先之后,将本地分支叉到叉口,并添加与本地仓库独特的承诺平行的新承诺,通过合并承诺最终完成,关闭叉口。
- 在上一个共同祖先后插入新承诺,并重新应用本地仓库独有的承诺。
内git
术语术语,第1步是git fetch
,第2步是git merge
或git rebase
git pull
是git fetch
和git merge
其他回答
我们简单地说:
git pull == git fetch + git merge
如果你逃跑git pull
中,您不需要将数据合并到本地数据。如果运行git fetch
这意味着你必须跑git merge
获取本地机器的最新代码。 否则, 本地机器代码不会在不合并的情况下被更改 。
所以在 Git Gui 中, 当您获取时, 您必须合并数据 。 获取本身不会在本地修改代码 。 您可以检查当您通过一次获取并查看来更新代码时, 是否更新了代码; 代码不会改变 。 然后您将合并... 您将会看到修改后的代码 。
Git使用两个命令从远程到本地获取最新版本的分支 :
git 获取: Git 将会从远程获取最新版本到本地版本, 但不会自动合并 。
git fetch origin master
git log -p master..origin/master
git merge origin/master
以上命令意味着从远程到源主分支下载主分支的最新版本。 然后比较本地主分支和源主分支。 最后, 合并 。
Git将从远程获取最新版本, 并合并到本地 。
git pull origin master
以上命令相当于
git fetch
和git merge
在实践中,git fetch
也许更安全,因为在合并之前,我们可以看到变化,决定是否合并。
更简短
git fetch
获取更新但不将其合并 。
git pull
是否为 a 的git fetch
兜帽下,然后一个merge
.
简简
git fetch
类似pull
但它不合并。 也就是说, 它会获取远程更新( NAME OF TRANSLATORS) 。refs
和objects
)但您的居住地保持不变(即:origin/master
得到更新,但master
保留原样) 。 。
git pull
从一个远程的并瞬间合并中拉下来。
更多
git clone
克隆回购 。
git rebase
将不属于上游分支的当前分支保存到临时区域。 您的分支现在和您开始更改前一样。 所以,git pull -rebase
将拉下远程修改, 倒转您的本地分支, 重放您的变化 在您当前分支的顶部 一个一个一个地重放 直到您更新。
还有git branch -a
将显示你们所有分支—— 本地和远程分支—— 究竟发生了什么。
这个博客文章很有用:
Git 拉拉、 Git 抓取和 Git 克隆( 和 Git 重新基底) - Mike Pearce 的区别
和涵盖范围git pull
, git fetch
, git clone
和git rebase
.
最新更新
我想我应该更新这个 来显示你是如何实际使用这个的。
从远程更新您的本地副本( 但不要合并) :
git fetch
下载更新后,
git diff master origin/master
如果你对最新消息满意的话, 合并一下:
git pull
注:
第2步:更多关于本地和远程之间差异的信息,见:如何比较本地 Git 分支与其远程分支的比较
第三步:也许更准确(例如,在快速变化的回购上)git rebase origin
此处。 见@ Justin Ohms 评论在另一个答案中。
另见:http://longair.net/blog/2009/04/16/git-fetch-and-merge/
注:我还提到merge
a 期间pull
然而,您仍然可以配置pull
使用rebase
取而代之。
这种互动图形表达方式非常有助于降低基点:http://ndpsoftware.com/git-cheatsheet.html
git fetch
仅“ 下载” 从远程到本地仓库的更改 。git pull
下载修改并将其合并到当前分支中。“在默认模式中,git pull
简称为git fetch
和继 继 继 继 继 继git merge FETCH_HEAD
."
其中一个使用实例git fetch
是,以下将告诉您自您上次拉动以来远程分支的任何变化... 这样您就可以在实际拉动之前检查, 这样就可以改变您当前分支和工作副本中的文件 。
git fetch
git diff ...origin
见见git diff
双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双- 双..
三点和三点...
语法。
推荐文章
- 为什么我需要显式地推一个新分支?
- 如何撤消最后的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之间的区别