【问题标题】:Clonning again git repository instead of fetching and merging every branch再次克隆 git 存储库,而不是获取和合并每个分支
【发布时间】:2020-08-17 11:09:04
【问题描述】:

是否经常删除本地 git 存储库并制作新的 git clone,而不是获取每个远程分支并将其与本地分支合并?

【问题讨论】:

  • 不,一点也不。这是矫枉过正。为什么会这样?
  • 仅当我完全搞砸了合并时。
  • 这是一种奇怪的做法。 “获取每个远程分支并将其与本地分支合并”是什么意思?本地分支机构是否有变化,或者您只是更新它们?能举个具体的例子吗?
  • 我的意思是当我有本地跟踪分支并想要更新它们时,我必须 git fetch 然后将每个分支与获取的分支合并,对吗?
  • @heroarthur 是的,但如果您打算进行更改,则只需要本地分支机构。如果删除 repo 是一种替代方法,则您无需进行任何更改(您想要保留)。不要建立您不需要的本地分支机构。如果这样做,请删除它们。如果有未合并的更改,git branch -d some_branch 会警告您。

标签: git git-branch git-fetch


【解决方案1】:

我猜你这样做是为了更新你所有的本地分支。但是除非您在分支上工作,否则不需要为远程分支设置本地分支。如果您正在处理分支,您当然不想删除本地存储库。

默认情况下,当您克隆存储库时,Git 会获取所有远程分支并将它们存储在 [remote name]/[branch name] 中。默认的远程名称是 origin,所以远程 master 进入 origin/master。它只会创建一个本地分支,master。

除非您打算在分支上工作,否则无需建立本地分支。您可以改为签出远程分支。例如,如果您想检查远程称为 origin(默认)上的一个名为 feature 的分支,您可以 git checkout origin/feature 或查看其历史记录 git log origin/feature

要更新远程分支,只需git fetch。这不会影响任何本地分支机构,您可以随意获取。

【讨论】:

  • 值得一提:查看像origin/feature 这样的远程跟踪名称会使您进入分离的HEAD模式。这种模式没有问题,你只需要记住在开始新工作之前是这种情况(或使用git status检查),而不是只使用git fetch然后重新检查origin/feature .
猜你喜欢
  • 2012-10-23
  • 2011-02-02
  • 1970-01-01
  • 2017-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-04
相关资源
最近更新 更多