Git pull 和 Git fick 之间有什么区别?
当前回答
回报 :
谈到上述答案中的拉动和取回,我想分享一个有趣的把戏,
git Pull -- rebase
以上命令是我生命中最有用的命令 挽救了很多时间
在将您的新承诺推进到服务器之前, 请尝试此命令, 它会自动同步最新的服务器更改( 加上一个抓取 + 合并) , 并将您的承诺放在 Git 日志的顶部 。 无需担心手动拉动/ 合并 。
详情见:http://gitolite.com/git-pull-rebase
其他回答
重要的是,将设计理论与SVN这种较传统的源控制工具的理论加以对比。
Subversion 是用客户端/ 服务器模型设计和构建的。 服务器是一个单一的仓库, 有几个客户可以从服务器上获取代码, 工作, 然后将其发送到服务器 。 假设客户总是可以在服务器需要操作时与服务器联系 。
Git 的设计是为了支持一个更分散的模型,而不需要一个中央存储库(尽管如果您愿意,您肯定可以使用一个)。 Git 的设计也是为了让客户和“服务器”不必同时上网。 Git的设计是为了让不可靠的链接上的人可以通过电子邮件交换代码,甚至可以。可以完全断开工作,烧掉CD,通过 git 交换代码。
为了支持此模型 git , 维持一个包含您的代码的本地仓库, 以及一个反映远程仓库状态的附加本地仓库。 通过保存远程仓库的副本, git 可以在本地找到所需的更改, 即使远程仓库无法到达 。 稍后当您需要将更改发送到其他人时, git 也可以从远程仓库已知的时间点将其转换为一组更改 。
Gitfreating是命令 上面写着"把我的远程仓库的本地副本更新到最新" git pull 说"把远程仓库的更改 传送到我自己的代码所在的地方"
通常情况下, git pull 将远程仓库的本地副本更新, 然后将更改合并到您自己的代码存储处, 并可能合并到您的工作副本 。
转移是记住您工作站上的项目通常至少有三个副本。 一个副本是您自己的存储库, 并有您自己的执行历史。 第二个副本是您编辑和构建的工作副本。 第三个副本是您本地的远程存储库“ 隐藏” 副本 。
使用 git 抓取的一个实例是, 以下会告诉您自上次拉动以来远程分支的任何变化... 这样您就可以在实际拉动之前检查, 这样就可以改变您当前分支和工作副本中的文件 。
git fetch
git diff ...origin
见 git diff 关于双点... 和三点... 语法的文件。
您可以从远程仓库获取, 查看差异, 然后拉动或合并 。
这是被称作起源的远程存储库和名为“跟踪远程分支来源/主管”的分支的分支的一个例子:
git checkout master
git fetch
git diff origin/master
git rebase origin master
Git允许在较新的承诺之后适用按时间顺序排列的旧承诺。 因此,存放库之间转移承诺的行为分为两步:
从远程分机复制新承诺副本到本地分机内的远程分机 。 (repo to repo operation) 主机@ remote {% text/ text/ text/ text/ progin/ master@ local 集成新承诺给本地分机( 内部分机操作) 远程/ text/ master@ local
第二步有两种方法,你可以:
在上一个共同祖先之后, 将本地分支方叉, 并添加与本地仓库独特的承诺平行的新承诺, 最终通过合并承诺完成, 关闭叉子 。 在上次共同祖先后插入新承诺, 并重新应用本地仓库独有的承诺 。
在 Git 术语中, 第1 步是 Git 抓取, 第 2 步是 Git 合并或 Git 重新基准
git pull 是 Git 抓取和 Git 合并
git-pull - Fetch from and merge with another repository or a local branch SYNOPSIS git pull … DESCRIPTION Runs git-fetch with the given parameters, and calls git-merge to merge the retrieved head(s) into the current branch. With --rebase, calls git-rebase instead of git-merge. Note that you can use . (current directory) as the <repository> to pull from the local repository — this is useful when merging local branches into the current branch. Also note that options meant for git-pull itself and underlying git-merge must be given before the options meant for git-fetch.
如果你想要合并历史,你会拉拉, 你会拉拉,你会拉拉拉,如果你只是"想要的cotz" ,因为有人一直在标记 一些文章在这里。
推荐文章
- “node_modules”文件夹应该包含在git存储库中吗
- 为什么git-rebase给了我合并冲突,而我所做的只是压缩提交?
- 当我试图推到原点时,为什么Git告诉我“没有这样的远程‘原点’”?
- 如何从远程分支中挑选?
- 如何查看一个分支中的哪些提交不在另一个分支中?
- 如何取消在github上的拉请求?
- HEAD和master的区别
- GIT克隆在windows中跨本地文件系统回购
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖
- Git rebase—即使所有合并冲突都已解决,仍然会继续报错
- 在Git中,我如何知道我的当前版本是什么?
- 跟踪所有远程git分支作为本地分支
- 为什么要把Gradle Wrapper提交给VCS?