Git 如何";拉;从一个本地分支机构转到另一个分支机构?

Git 如何";拉;从一个本地分支机构转到另一个分支机构?,git,Git,这听起来很简单,但我就是搞不懂。不久前我做了一个实验分支,现在我想了解一下自从我做了这个分支以来master上发生的所有变化。这都是本地的。我想从当地的主人那里拉到当地的我的分支机构,但我做不到。这似乎不起作用,告诉我master不是git存储库: git pull master git pull . master 您必须告诉git从何处提取,在本例中是从当前目录/存储库: git pull master git pull . master 但在本地工作时,通常只调用merge(内部拉式

这听起来很简单,但我就是搞不懂。不久前我做了一个实验分支,现在我想了解一下自从我做了这个分支以来master上发生的所有变化。这都是本地的。我想从当地的主人那里拉到当地的我的分支机构,但我做不到。这似乎不起作用,告诉我master不是git存储库:

git pull master
git pull . master

您必须告诉git从何处提取,在本例中是从当前目录/存储库:

git pull master
git pull . master
但在本地工作时,通常只调用merge(内部拉式调用merge):


您正在寻找的是合并

git merge master

使用
pull
可以从远程存储库获取更改,并将它们合并到当前分支中。

这是一篇相当老的文章,但它可能有助于新手进入git

我会和你一起去

git rebase master
  • 更清晰的日志历史记录和无合并提交(如果操作正确)
  • 需要处理冲突,但并没有那么困难

如果您正在寻找从另一个分支(如从本地到master)获得的全新吸引力,您可以遵循以下步骤

git commit -m "Initial Commit"
git add .
git pull --rebase git_url
git push origin master

另请参见我喜欢git pull。master,因为我认为它也会检查是否有来自原始版本的新内容。这是真的吗?@JosiahYoder no,
pull。
特别告诉Git从位于
的存储库(即当前目录/存储库)中提取
origin
只是“在
.git/config
文件中定义的任何存储库位置(通常在克隆存储库时自动设置)的简写。哦!所以
git pull.master
将从本地存储库而不是从源库中提取?(不从源库提取!)那么,
git pull.master
git merge master
有什么优势吗?@JosiahYoder是的,它会从本地存储库而不是源存储库“拉”出来。不会进行抓取(因为本地存储库中的所有内容都已经在这里了!)。没有任何优势–两个命令的作用大致相同。如果您正在进行快进,可以使用
推送。原点/分支:分支
(非拉)更新本地分支,而不首先检查它们。我赞扬你。凭借Greyskull的力量!开发团队当然有很多方法来管理它们的分支过程。就我个人而言,我已经使用git 8年了,而且我从来没有使用过rebase。我总是使用merge,它总是满足我的需求。当然,有了rebase,就李了ke merge,可能会出现git无法自动决定“合并”两组更改的正确结果的情况。关于您关于“更干净”提交历史记录的观点。就我个人而言,我倾向于维护所有提交历史记录,以防我需要做一些“提交考古”(经常发生!)我做了git rebase master,做了一些更改,推到了ogirin分支,但被拒绝了,因为它不能快进,这是我不想要的。正如第一条评论中所解释的,如何进行合并有优点和缺点。这取决于团队的规模、开发速度等。我现在也使用混合方法。在您的情况下,您应该先拉,所以步骤应该是
git checkout master
git pull origin master
git签出错误修复分支
git rebase master
(不解决合并冲突),
git checkout master
git merge master
,最后,
git push origin master
@user3441604 Rebasing并不意味着您将丢失任何历史记录。只是提交将在一行中对齐,而不是在难以读取的平行行中对齐。@Lukino Local branchs(参见OP)不需要您描述的这个过程。即使这样,您也只需要:
git pull--重新设置原始主机的基础
,然后
git push原始主机
。通过正确的配置,您可以只执行
git pull和&git push