“git pull”和“git fetch”有什么区别?

git version-control git-pull git-fetch 神诚 | 2020-02-02 19:35:06


主持人提示:考虑到这个问题已经发布了77个答案(其中一些已经删除),在发布另一个之前,请考虑您是否正在贡献任何新的内容。
git pull
git fetch
之间的区别是什么?


本站提供【Linux疑难问题解决】50元起 ,【爬虫开发】200元起。欢迎咨询QQ:376667689 点击这里给我发消息



30 回答


9657


简单来说,
git pull
执行
git fetch
后接
git merge

您可以随时执行
git fetch
来更新
refs/remotes//下的远程跟踪分支不要更改工作副本。我甚至听说有人在后台的cron作业中周期性地运行
git fetch
(尽管我不建议这样做)。
您可以通过
git pull
更新本地分支的远程版本,同时还可以更新其他远程跟踪分支。
Git文档–git pull :
在默认模式下,
git pull
git fetch
的缩写,后跟
git merge FETCH_HEAD

2020-02-02 19:35:18
minorin

2118


当您使用
pull
时,Git会尝试自动为您完成工作。它是上下文敏感的,因此Git将merge任何pulled提交到您当前工作的分支中。
pull
自动合并提交,而不让您先查看它们。如果你没有严格管理你的分支,你可能会遇到频繁的冲突。
当你在PRE> >代码> [ 2 ] < /> > /PRE>时,Git收集来自当前分支中不存在的目标分支的任何提交,并将它们存储在本地存储库中。但是,它不会将它们与当前分支合并。如果需要保持存储库的最新状态,但正在处理更新文件时可能会中断的内容,则这一点特别有用。
要将提交集成到主分支中,可以使用
merge

2020-02-02 19:35:18
candysol

1185


将git的设计理念与更传统的源代码管理工具(如SVN)的理念进行对比是很重要的。
Subversion是用客户机/服务器模型设计和构建的。只有一个存储库是服务器,几个客户机可以从服务器获取代码,对其进行处理,然后将其提交回服务器。假设客户机在需要执行操作时总是可以与服务器联系。
Git的设计目的是支持更分布式的模型,而不需要中央存储库(不过如果愿意,您当然可以使用中央存储库)。此外,git的设计使得客户端和“服务器”不需要同时在线。Git的设计使得不可靠链接上的人甚至可以通过电子邮件交换代码。完全断开连接并通过git刻录CD以交换代码是可能的。
为了支持这种模式,git使用您的代码维护一个本地存储库,同时还维护一个额外的本地存储库,以反映远程存储库的状态。通过在本地保留远程存储库的副本,git可以找出所需的更改,即使在无法访问远程存储库时也是如此。稍后当你需要将更改发送给其他人时,git可以将它们作为一组更改从远程存储库已知的时间点进行传输。
git fetch
是一个命令,它表示“将远程存储库的本地副本更新。”
git pull
表示“将远程存储库中的更改带到我保留自己代码的位置。”
通常
git pull
通过执行
git fetch
更新远程存储库的本地副本,然后将更改合并到您自己的代码存储库中,并可能合并到您的工作副本中来实现这一点。
需要注意的是,您的工作站上通常至少有三个项目副本。一个副本是您自己的存储库,其中包含您自己的提交历史记录。第二个副本是您正在编辑和构建的工作副本。第三个副本是远程存储库的本地“缓存”副本。

2020-02-02 19:35:18
宇宙波澜

847


这是奥利弗·斯蒂尔关于这一切如何结合在一起的图像:
如果有足够的兴趣,我想我可以更新图像,添加
git clone
git merge
。。。

2020-02-02 19:35:18
笨蛋

477


git fetch
的一个用例是,下面将告诉您自上次拉入后远程分支中的任何更改。。。因此,您可以在执行实际拉取之前进行检查,这可能会更改当前分支和工作副本中的文件。
git fetch
git diff ...origin

请参见:https://git-scm.com/docs/git-diff,了解diff命令中的双点和三点语法

2020-02-02 19:35:18
卫龙面筋

366


我花了一点时间才弄明白有什么不同,但这只是一个简单的解释。
master
在本地主机中是一个分支。
克隆存储库时,会将整个存储库提取到本地主机。这意味着,此时您有一个指向
HEAD
的原点/主指针,并且主指针指向相同的
HEAD

当您开始工作并提交时,您将主指针提前到
HEAD
+提交。但是origin/master指针仍然指向克隆时的状态。
因此,不同之处在于:
如果执行
git fetch
操作,它将只获取远程存储库(GitHub)中的所有更改,并将origin/master指针移动到
HEAD
。同时,您的本地分支母版将继续指向它所在的位置。
如果您执行
git pull
,它将基本上执行提取(如前所述)并将任何新更改合并到您的主分支,并将指针移动到
HEAD

2020-02-02 19:35:18
hikarifocus

216


有时视觉表现有帮助。

2020-02-02 19:35:18
Saber騎士王

212


简而言之,
git fetch
pull
类似,但不合并。i、 克隆a回购。
git rebase
将不在上游分行的当前分行的资料保存到临时区域。您的分支现在与开始更改之前相同。因此,
git pull -rebase
将下拉远程更改,倒带本地分支,在当前分支的顶部逐个重放更改,直到您是最新的。
此外,
git branch -a
将准确地向您展示所有分支(本地和远程分支)的情况。
这篇博客文章非常有用:
这git pull、git fetch和git clone之间的区别(和git rebase)-迈克•皮尔斯
介绍了git-pull、git-fetch和git-fetchrebase
====
UPDATE
我想我会更新这个来展示你在实践中是如何使用它的。
从远程更新本地repo(但不要合并):
git fetch 

下载更新后,让我们看看不同之处:
git diff master origin/master 

如果您对这些更新感到满意,请合并:
git pull

注意:第2步:有关本地和远程之间的差异的详细信息,请参阅:如何将本地git分支与其远程分支进行比较?
第3步:在这里进行
git rebase origin
可能更准确(例如,在快速变化的回购上)。请参阅另一个答案中的@Justin Ohms注释。
另请参阅:http://longair.net/blog/2009/04/16/git-fetch-and-merge/

2020-02-02 19:35:18
南天大帝

174


git pull-从另一个存储库或本地分支获取并与之合并
摘要
git pull…
说明
使用给定参数运行git Fetch,并调用git merge将检索到的头合并到当前分支。使用--rebase,调用git rebase
而不是git merge。
注意,您可以使用。(当前目录)作为从本地存储库中拉取
的-这在将本地分支
合并到当前分支中时很有用。
还请注意,在为git fetch提供选项之前,必须先为git拉取自身和基础git merge提供选项

如果希望合并历史记录,则会拉取,如果你只是“想要代码”,你会去拿,因为有人在这附近标记了一些文章。

2020-02-02 19:35:18
霸气纯爷们

160


您可以从远程存储库中提取,查看差异,然后拉取或合并。
这是一个名为
origin
的远程存储库和名为
master
的分支跟踪远程分支
origin/master

git checkout master                                                  
git fetch
git diff origin/master
git rebase origin master

2020-02-02 19:35:18
Megpoid_Sweet

156


简短而简单的答案是
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
,version
2.3.5

这是一种潜在的危险操作模式。它重写了
历史,如果你已经发布了该历史,那就不是好兆头。请不要使用此选项,除非您已仔细阅读git rebase(1)

2020-02-02 19:35:18
翎渡肆

147


好的,这里有一些关于
git pull
git fetch
的信息,因此您可以了解实际的差异。。。简单地说,fetch获取最新的数据,但不是代码更改,也不会干扰当前的本地分支代码,而是pull获取代码更改并将其合并到本地分支,继续阅读以获取有关每个存储库的详细信息:
git fetch
它将下载所有ref和对象以及任何新分支到本地存储库…
从一个或多个
其他存储库中获取分支和/或标记(统称为“ref”),以及完成其
历史记录所需的对象。远程跟踪分支将被更新(有关控制此行为的方法,请参阅下面的“说明”。
默认情况下,指向要获取的历史记录的任何标记也将被获取;其效果是获取指向您感兴趣的分支的标记。此默认行为可以通过使用--tags或--no tags选项或配置
remote..tagOpt来更改。通过使用显式获取标记的refspec,
还可以获取不指向感兴趣的分支的标记。
git fetch可以从单个命名存储库或URL中获取,或者从多个存储库中同时获取(如果给定且存在
远程)。配置文件中的项。(请参阅git-config1)。
如果未指定remote,则默认情况下将使用origin remote,除非为当前的
分支配置了上游分支。
获取的ref的名称及其指向的对象名称将写入.git/FETCH\u HEAD。此信息可以由脚本或其他git命令(如git pull)使用。

git pull
它将应用从远程到本地当前分支的更改…
将远程存储库的更改合并到当前分支。
在其默认模式下,git pull是git fetch的简写,后面是git merge fetch头。
更准确地说,git pull使用给定的参数运行git fetch,并调用git merge将检索到的分支头合并到当前的分支中。使用--rebase,它运行git rebase而不是git merge。
应该是传递给
git-fetch1的远程存储库的名称。可以命名任意远程引用(例如,
标记的名称)甚至具有相应的远程跟踪分支(例如,refs/heads/:refs/remotes/origin/)的引用集合,
但通常它是远程存储库中分支的名称。

git branch--track设置的当前分支的
“remote”和“merge”配置的默认值和从中读取的值。

我还创建了下面的可视化视图,向您展示如何
git fetch
git pull
工作一起…

2020-02-02 19:35:18
7786

132


这种交互式图形表示对于理解git非常有用:http://ndpsoftware.com/git-cheatsheet.html
git fetch
只需“下载”从远程到本地存储库的更改。
git pull
下载更改并将其合并到当前分支中。”在默认模式下,
git pull
git fetch
的缩写,后跟
git merge FETCH_HEAD

2020-02-02 19:35:18
塞巴

124


另外:
说到上述答案中的pull&fetch,我想分享一个有趣的技巧,
git pull --rebase

这个命令是git生命中最有用的命令,它节省了大量时间。
在将新的提交推送到服务器之前,尝试此命令,它将自动同步最新的服务器更改(使用fetch+merge),并将您的提交放在git日志的顶部。无需担心手动拉取/合并。
有关详细信息,请访问:http://gitolite.com/git pull--rebase

2020-02-02 19:35:18
营养快线

117


我喜欢有一些视觉的情况下,掌握这些东西。也许其他开发人员也希望看到它,下面是我的补充。我不完全确定这一切是否正确,因此如果您发现任何错误,请发表评论。
                                         LOCAL SYSTEM
. =====================================================
================= . ================= =================== =============
REMOTE REPOSITORY . REMOTE REPOSITORY LOCAL REPOSITORY WORKING COPY
(ORIGIN) . (CACHED)
for example, . mirror of the
a github repo. . remote repo
Can also be .
multiple repo's .
.
.
FETCH *------------------>*
Your local cache of the remote is updated with the origin (or multiple
external sources, that is git's distributed nature)
.
PULL *-------------------------------------------------------->*
changes are merged directly into your local copy. when conflicts occur,
you are asked for decisions.
.
COMMIT . *When coming from, for example, subversion, you might think that a commit
will update the origin. In git, a commit is only done to your local repo.
.
PUSH *Synchronizes your changes back into the origin.

使用远程回迁镜像的一些主要优点是:
性能(滚动浏览所有提交和消息,而不尝试通过网络挤压它)
有关本地回购状态的反馈(用于例如,我使用Atlassian的SourceTree,它将给我一个灯泡,指示与源代码相比,我是提前提交还是延迟提交。此信息可通过GIT获取更新)。

2020-02-02 19:35:18
zqcde

104


我也一直在挣扎。事实上,我在谷歌上搜索到了完全相同的问题。阅读所有这些答案,最终在我的脑海中画出了一幅图画,我决定试着把这个画下来,看看2个存储库和1个沙盒的状态,以及在观看它们的版本时随时间执行的操作。这就是我想出来的。如果我在任何地方搞砸了,请纠正我。
带回迁的三份回购:
---------------------     -----------------------     -----------------------
- Remote Repo - - Remote Repo - - Remote Repo -
- - - gets pushed - - -
- @ R01 - - @ R02 - - @ R02 -
--------------------- ----------------------- -----------------------
--------------------- ----------------------- -----------------------
- Local Repo - - Local Repo - - Local Repo -
- pull - - - - fetch -
- @ R01 - - @ R01 - - @ R02 -
--------------------- ----------------------- -----------------------
--------------------- ----------------------- -----------------------
- Local Sandbox - - Local Sandbox - - Local Sandbox -
- Checkout - - new work done - - -
- @ R01 - - @ R01+ - - @R01+ -
--------------------- ----------------------- -----------------------

带回迁的三份回购
---------------------     -----------------------     -----------------------
- Remote Repo - - Remote Repo - - Remote Repo -
- - - gets pushed - - -
- @ R01 - - @ R02 - - @ R02 -
--------------------- ----------------------- -----------------------
--------------------- ----------------------- -----------------------
- Local Repo - - Local Repo - - Local Repo -
- pull - - - - pull -
- @ R01 - - @ R01 - - @ R02 -
--------------------- ----------------------- -----------------------
--------------------- ----------------------- -----------------------
- Local Sandbox - - Local Sandbox - - Local Sandbox -
- Checkout - - new work done - - merged with R02 -
- @ R01 - - @ R01+ - - @R02+ -
--------------------- ----------------------- -----------------------

这有助于我理解回迁为何非常重要。

2020-02-02 19:35:18
睡衣·幽香

93


GITFetch和GIT Pull之间的D差异可以用以下场景来解释:
(请记住,图片比文字更响亮!,我提供了图片表示)
让我们举一个例子,您正在与您的团队成员一起处理一个项目。因此,他们将是项目的一个主要分支,所有贡献者必须将其分支到自己的本地存储库中,然后在此本地分支上修改/Add模块,然后再推回到主分支。
So,
在本地存储库上派生主项目时,两个分支的初始状态将如下-(
A
B
C
是项目已完成的模块)
现在,您已经开始处理新模块(假设
D
)并且当您已经完成了您想要将其推送到主分支的
D
模块,但与此同时,您的一位队友开发了新的模块
E
F
并修改了
C

所以现在发生的是您的本地存储库已经落后了项目的原始进度以及将更改推送到主分支可能导致冲突,并可能导致模块故障。
要避免此类问题并与项目的原始进度并行工作,有两种方法:
1。Git Fetch-这将下载对本地分支中不存在的源/主分支项目所做的所有更改。并等待Git Merge命令将已提取的更改应用到存储库或分支。
因此,现在可以在将文件合并到存储库之前仔细监视这些文件。如果需要,您还可以修改
D
,因为修改了
C

2。Git Pull-这将使用原始/主分支更新本地分支,即它实际上是Git Fetch和Git merge的组合,一个接一个。
但这可能会导致冲突发生,因此建议对干净的副本使用Git Pull。

2020-02-02 19:35:18
南瓜兔

84


我们只是说:
git pull == git fetch + git merge

如果运行
git pull
,则不需要将数据合并到本地。如果运行
git fetch
,则意味着您必须运行
git merge
才能将最新的代码发送到本地计算机。否则,如果没有合并,本地计算机代码将不会更改。
因此,在Git Gui中,当您进行提取时,必须合并数据。获取本身不会在本地更改代码。当您通过获取
一次获取并查看来更新代码时,您可以检查它;它不会更改代码。然后你合并。。。您将看到更改的代码。

2020-02-02 19:35:18
swety

81


git fetch
将代码从远程服务器下拉到本地存储库中的跟踪分支。如果您的遥控器命名为
origin
(默认值),则这些分支将位于
origin/
范围内,例如
origin/master
origin/mybranch-123
等。这些不是您当前的分支,它们是服务器上这些分支的本地副本。
git pull
执行
git fetch
操作,但也会将跟踪分支中的代码合并到该分支的当前本地版本中。如果您还没有准备好进行更改,请先
git fetch

2020-02-02 19:35:18
mikumiku

76


git fetch
将检索远程分支,以便您可以使用当前分支检索这些分支。
git pull
将在当前分支跟踪的远程分支上运行fetch,然后合并结果。您可以使用
git fetch
查看远程分支是否有任何更新,而无需将它们与本地分支合并。

2020-02-02 19:35:18
逆梧宅

72


Git Fetch
您可以通过Fetch将更改从源位置下载到本地分支。Fetch向远程repo请求其他人所做但您在本地repo上没有的所有提交。Fetch下载这些提交并将其添加到本地存储库。
Git Merge
您可以使用Merge命令应用通过Fetch下载的更改。Merge将获取从fetch检索到的提交,并尝试将其添加到本地分支。合并将保留本地更改的提交历史,以便当您使用push共享分支时,Git将知道其他人如何合并您的更改。
Git Pull
Fetch and merge一起运行的频率足以创建一个将两者结合的命令Pull。Pull执行一次提取,然后进行一次合并,将下载的提交添加到本地分支。

2020-02-02 19:35:18
瓦尔基丽.

51


git pull
git fetch
之间的唯一区别是:
git pull
从远程分支提取并将其合并。
git fetch
仅从远程分支提取,但不合并
即git pull=git fetch+git merge…

2020-02-02 19:35:18
杯具米

44


Git允许在较新的提交之后按时间顺序应用较旧的提交。
因此,在存储库之间传输提交的操作分为两个步骤:
将新的提交从远程分支复制到本地repo中此远程分支的副本。
(回购到回购操作)
master@remote >> remote/origin/master@local

集成新提交到本地分支机构
(内部回购操作)
remote/origin/master@local >> master@local

有两种方法执行步骤2。您可以:
在最后一个公共祖先之后分叉本地分支,并添加与本地存储库唯一的提交并行的新提交,通过合并提交并关闭分叉来完成。

2020-02-02 19:35:18
正太77

36


Git使用两个命令从远程到本地获取最新版本的分支:
git fetch:Git将从远程到本地获取最新版本,但不会自动合并。

git fetch origin master

git log -p master..origin/master

git merge origin/master

上述命令意味着从远程到源站主分支下载主分支的最新版本。然后比较本地主分支和源主分支。最后,合并。
git pull:git将从远程获取最新版本并合并到本地。

git pull origin master

上面的命令相当于
git fetch
git merge
。实际上,
git fetch
可能更安全,因为在合并之前,我们可以看到更改并决定是否合并。

2020-02-02 19:35:18
Launcelot

36


git pull
git fetch
之间有什么区别?
要了解这一点,首先需要了解本地git不仅维护本地存储库,而且还维护远程存储库的本地副本。
git fetch
使远程存储库的本地副本保持最新。例如,如果远程存储库是GitHub,则可能需要将远程存储库中所做的任何更改提取到远程存储库的本地副本中。这将允许您执行比较或合并等操作。
git pull
另一方面,会将远程存储库中的更改降到保存自己代码的位置。通常,
git pull
将首先执行
git fetch
以更新远程存储库的本地副本,然后将更改合并到您自己的代码存储库中,并可能合并到您的工作副本中。

2020-02-02 19:35:18
MLGB

36


简单地说,如果你要跳上一架没有任何互联网连接的飞机.…在起飞前,你只需做
git fetch origin 
。它会将所有更改提取到您的计算机中,但将其与本地开发/工作区分开。
在平面上,您可以对本地工作区进行更改,然后将其与提取的内容合并,并在不连接到Internet的情况下解决潜在的合并冲突。除非有人对远程存储库进行了新的冲突性更改,否则一旦您到达目的地,您将执行
git push origin 
并去喝咖啡。
从这本了不起的阿特拉斯教程中:
the
git fetch
command downloads commits commits,files,从一个远程存储库到本地存储库,
抓取就是当你想看到每个人都在做什么的时候。它类似于SVN update,它让您看到中心历史是如何发展的,但它并不强制您将更改合并到存储库中。Git分离物
提取的含量为从现有的局部含量来看,绝对不影响当地的开发工作。获取的内容必须使用
git checkout
命令显式签出。这使得
在将提交集成到本地存储库之前,获取一种安全的方法来检查提交。
从远程存储库下载内容时,可以使用
git pull
git fetch
命令来完成任务。您可以考虑这两个命令的“安全”版本。它将下载
远程内容,但不会更新本地存储库的工作状态,
保留当前工作不变。
git pull
是更积极的选择,它将下载活动本地分支的远程内容,并立即执行
git merge
以创建新远程内容的合并提交。如果有挂起的更改正在进行中,这将导致冲突并启动合并冲突解决流程。

使用
git pull

不会得到任何隔离。
它会影响本地开发。
不需要显式签出。因为它隐式地执行
git merge

基本上是不安全的。它是侵略性的。
与只影响您的
git fetch
不同,git拉将同时影响您的
.git/refs/remotes
.git/refs/heads/


Hmmm…所以如果我不使用
git fetch
更新工作副本,那么我在哪里进行更改?Git fetch在哪里存储新的提交?
好问题。它把它和你的工作副本隔离开来。但又在哪里?让我们来看看。
在您的项目目录中(即,您执行
git
命令的位置)执行:
ls
。这将显示文件和目录。我知道,没什么酷的。
现在就做。这将显示点文件,即以
开头的文件
然后您将能够看到名为:
.git
的目录。这显然会改变你的目录。
现在是有趣的部分;做
ls
。您将看到目录列表。我们正在寻找参考文献。请执行
cd refs

查看所有目录中的内容很有意思,但让我们重点关注其中两个目录。
heads
remotes
。使用
cd
也可以检查它们的内部。
您所做的任何
git fetch
操作都将更新
/.git/refs/remotes
目录中的项目。它不会更新
/.git/refs/heads
目录中的任何内容。
任何
git pull
都将首先执行
git fetch
,更新
/.git/refs/remotes
目录中的项目,然后与本地合并,然后在
/.git/refs/heads
目录中更改头。

在“git fetch”本身的位置也可以找到一个很好的相关答案?.
还可以从Git分支命名约定post中查找“斜线符号”。它有助于您更好地了解Git如何将内容放在不同的目录中。
酷提示:
如果您获取了一个远程分支,例如did:
git fetch origin feature/123

则此操作将进入您的远程目录。您的本地目录仍然无法使用它。不过,它通过DWIM简化了您对该远程分支的结账(按我的意思做):
git checkout feature/123

您不再需要这样做:
git checkout -b feature/123 origin/feature/123

有关更多信息,请阅读此处

2020-02-02 19:35:18
凪の执事

33


Git PLA= =(Git FETCH+Git合并)
GIT-FETCH不会更改到本地分支。
如果您已经有一个本地存储库,为所需的项目设置了远程设置,您可以使用Git F取来获取现有远程的所有分支和标签。... Fetch不会对本地分支进行任何更改,因此需要将远程分支与成对的本地分支合并,以合并新的Fetch更改。来自github

2020-02-02 19:35:18
河蟹蛇烩

32


尝试变得清晰和简单。
git pull命令实际上是git fetch的
shortcut
命令,后面是git merge或git rebase命令,具体取决于您的配置。您可以配置Git存储库,以便Git pull是一个fetch,后面是一个rebase。

2020-02-02 19:35:18
是开碧落

32


对于初学者来说,一个简单的图形表示,
在这里,
git pull  

将从存储库中获取代码,并与您的本地数据库建立关系。。。在git pull中,可能会创建新的提交。
但是在,
git fetch
将从存储库中获取代码,我们需要使用
git rebase

来手动对其进行重设。例如:我将从服务器主机获取代码并在本地主机中重设其重设。
1)git pull(重设将自动完成):
git pull origin master

这里origin是您的远程回购主机是您的分支
2)git获取(需要手动重新平衡):
git fetch origin master

它将从原始位置获取服务器更改。它将在你的本地,直到你自己再平衡它。我们需要通过检查代码手动修复冲突。
git rebase origin/master

这将使代码重新定位到本地。在此之前,确保您处于正确的分支。

2020-02-02 19:35:18
诚哥附体

32


实际上,Git维护您自己的代码和远程存储库的副本。
通过从远程存储库获取数据,命令
git fetch
使您的本地副本保持最新。我们需要这样做的原因是因为其他人可能对代码做了一些更改,而您希望保持自己的更新。
命令
git pull
将远程存储库中的更改带到保存自己代码的位置。通常,
git pull
首先执行“git fetch”以更新远程存储库的本地副本,然后将更改合并到您自己的代码存储库中,并可能合并到您的工作副本中。

2020-02-02 19:35:18
NEET



Copyright © 2019-2020 zimt8.com
备案号:湘ICP备19012068号