我需要将一个本地仓库拉到我的新仓库。让我们说我想把original
拉到duplicate
。我已经在这里看到了它的解决方案,但是如下所述,两者都存在一些问题 -
original
将分支git remote add original
添加到远程,然后拉动此远程仓库。但我在远程仓库上有一个同名的回购,其中包含我不会乱用的公司逻辑。所以我不能使用这种方法。git pull --help
我发现我可以使用git pull /path/to/repo's .git/file
拉回购,但这两个分支是相同的项目所以他们有相同的.git
文件。还有其他办法吗?提前致谢
我认为这里的概念repo
,branch
和remote
之间存在着误解。
根据我的理解,你想“将一个本地分支拉到另一个本地分支”(即“拉”一个分支,而不是一个回购)。 pull
通常不是我们用于本地分支的术语(pull
操作涉及从远程仓库获取东西)。
如果这是你想要做的,有两个选择:
git merge my_task_branch
将my_task_branch
合并到当前分支中。git rebase master
移动您在当前分支上所做的更改,以便它们基于本地master
分支上的最新更改。这两个选项都将确保在当前分支中提供其他分支(上例中的my_task_branch
/ master
)的更改。
一些术语:
回购:回购有一个.git
目录。如果你有两个repos,它们(根据定义)有两个不同的.git
目录,否则,它们是相同的repo。当你说“两个分支都是同一个项目,所以它们有相同的.git
文件”时,你的意思是两个分支都在同一个仓库中。
分支:回购可以有多个分支。每个分支代表可能不同的变化历史。您可以对一个分支进行一些更改,然后提交它们。然后检查另一个分支,在那里进行一些其他更改。
远程:远程是对您可以获取/推送更改的另一个repo的引用。
拉:git pull
操作有两个部分。首先,从其他远程仓库获取提交(这可以使用git fetch
命令单独完成)。此后,来自远程仓库的一些分支合并到当前分支(git merge
命令)
本地分支与远程分支:您可以在仓库中创建任意数量的本地分支。但是本地分支与远程分支不同。您可以创建任意数量的本地分支,而不会以任何方式影响远程仓库。如果你git push
这些分支,本地分支只在远程仓库中可见。