使用来自 GitHub 存储库的更改更新本地存储库
Posted
技术标签:
【中文标题】使用来自 GitHub 存储库的更改更新本地存储库【英文标题】:Updating a local repository with changes from a GitHub repository 【发布时间】:2010-11-29 09:59:39 【问题描述】:我从 GitHub 本地检查了一个项目,并且该远程存储库已经对其进行了更改。使用最新更改更新我的本地副本的正确命令是什么?
【问题讨论】:
值得注意的是,github 已经为使用 git 和 github 提供了一组非常有用且有用的指南。当我第一次转向 git 时,我发现它们非常宝贵。 help.github.com 【参考方案1】:大概:
是:git pull origin master
现在:git pull origin main
【讨论】:
它抱怨:“你要求从远程'origin'拉,但没有指定一个分支。因为这不是你当前分支的默认配置远程,你必须在命令行。”所以我尝试了“$ git pull origin master”,效果很好。 git pull origin master 我删除了一些文件,但它没有再次带来它们,知道吗? 我们在运行它之前做一个 git commit 吗?每次我运行这个命令时,我都会得到 18347213846 个我什至没有碰过的修改文件!!! 我刚刚学到了一个艰难的方法,即拉一个新的远程存储库分支不会在本地创建该名称的分支,而是将该远程分支拉入碰巧签出的任何本地分支。我不确定如何撤消这个放弃和重新克隆存储库的方法。无论如何,本地分支似乎独立于远程分支,并且在拉取之前应始终确保您位于预期的本地分支中。【参考方案2】:这应该适用于每个默认回购:
git pull origin master
如果您的默认分支与master
不同,则需要指定分支名称:
git pull origin my_default_branch_name
【讨论】:
并非如此。致命:找不到远程参考主机 @Eijkhout probablt 在您的 repo 案例中没有 master 分支,并且其他一些分支设置为默认值【参考方案3】:git fetch [remotename]
但是,您需要将所有更改合并到本地分支中。如果你在一个正在跟踪 Github 上的远程分支的分支上,那么
git pull
会先进行一次抓取,然后合并到被跟踪的分支中
【讨论】:
如果您使用git fetch
方法,您还需要使用git fetch -t
获取标签。如果您对更改感到满意 (git log HEAD..FETCH_HEAD
),则可以将它们与 git merge FETCH_HEAD
合并。【参考方案4】:
这个问题非常笼统,我会做一些假设来简化它。我们假设您想要更新您的 master
分支。
如果您没有在本地进行任何更改,您可以使用git pull
取消任何新提交并将它们添加到您的master
。
git pull origin master
如果您进行了更改,并且希望避免添加新的合并提交,请使用git pull --rebase
。
git pull --rebase origin master
git pull --rebase
即使您没有进行更改也可以工作,这可能是您最好的电话。
【讨论】:
变基,变基的危险:atlassian.com/git/tutorials/rewriting-history/git-rebase。 《了解变基的危险》的第 2 和第 3 段真的让我怀念 SVN 的命令集。【参考方案5】:使用已经设置好的原始主机,您只需使用以下命令 -
git pull "https://github.com/yourUserName/yourRepo.git"
【讨论】:
【参考方案6】:要从默认分支中拉取,新的存储库应使用以下命令:
git pull origin main
Github 在 2020 年将默认分支的命名约定从 master 更改为 main。https://github.com/github/renaming
【讨论】:
不管 GitHub 的策略如何变化,main 可能都不是 GitHub 默认分支。用户可以指定默认分支名称。如果您的目标是从 GitHub 默认分支中提取,则无需指定分支...主、主或其他。 “git pull”将作用于默认远程和默认分支。【参考方案7】:检查分支并从 master 拉取更改的完整工作流程
拉取所有远程分支
git pull --all
现在列出所有分支
git 分支 -a
下载你的分支
git checkout -b
<feature branch name copied from list of branches above>
显示当前分支。必须在 <feature branch>
前面显示 *
git 分支
结帐从主分支到当前分支的更改
git pull origin master
或将任何其他 <feature branch>
签出到当前分支
git pull origin
<feature-branch>
【讨论】:
【参考方案8】:Git Clone 之后,如果想获取远程分支使用
git fetch --all
然后结帐到你想要的分店
git checkout the-branch-you-need
【讨论】:
以上是关于使用来自 GitHub 存储库的更改更新本地存储库的主要内容,如果未能解决你的问题,请参考以下文章