当前回答
回报 :
谈到上述答案中的拉动和取回,我想分享一个有趣的把戏,
git pull --rebase
以上命令是我生命中最有用的命令 挽救了很多时间
在将您的新承诺推进到服务器之前, 请尝试此命令, 它会自动同步最新的服务器更改( 加上一个抓取 + 合并) , 并将您的承诺放在 Git 日志的顶部 。 无需担心手动拉动/ 合并 。
其他回答
人们必须牢记 git 的性质。 您有远程和本地分支( 不一定相同 ) 。 与其他源控制系统相比, 这可能会有点令人困惑 。
通常当您检出远程时,会创建本地副本,跟踪远程。
gitreach 将会与远程分支合作并更新您的信息 。
实际上,如果其他SWES同一个部门工作,就属于这种情况,而小型项目----一个部门----一个项目设想方案的情况很少。
您对本地分支的工作仍然完好无损 。 为了将更改带回您的本地分支, 您必须合并/ 重订远程分支的更改 。
git拉动正好就是这两个步骤(即 -- -- rebase to rebase rebase 而不是合并)
如果您的本地历史和远程历史有冲突, 您将被迫在一小块按键发布您的更改时进行合并 。
因此,这真正取决于你的工作环境的性质和使用经验。
更简短
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
取而代之。
git pull = = (获取 Git + git 合并)
git refick 不改变本地分支 。
如果您已经拥有一个本地仓库, 并且为所要的工程设置了远程设置, 您可以使用 git 抓取, 来抓取所有现有的远程的分支和标记 。... Fetch 不改变本地分支 。 因此您需要将远程分支与本地分支合并, 以纳入新抓取的更改 。发自 Github
git fetch
将检索远程分支,以便您能够git diff
或git merge
它们与当前分支一起存在。git pull
将运行当前分支所跟踪的远程条格获取,然后合并结果。您可以使用git fetch
查看是否对远程分支有任何更新,而不必将其与您的本地分支合并。
推荐文章
- Windows git“警告:LF将被CRLF取代”,这是警告尾巴向后吗?
- git中的哈希冲突
- git可以自动在空格和制表符之间切换吗?
- Git暂存文件列表
- 如何将git配置存储为存储库的一部分?
- 如何修改GitHub拉请求?
- 如何在Github和本地删除最后n次提交?
- 我如何调试git/git-shell相关的问题?
- 错误:无法使用rebase进行拉取:您有未分阶段的更改
- Git隐藏未缓存:如何把所有未分期的变化?
- 真实的恶魔
- 如何从另一个分支获得更改
- Git:权限被拒绝(publickey)致命-无法从远程存储库读取。克隆Git存储库时
- git reflog和log有什么区别?
- git推挂在Total line之后