在 GIT 中获取远程上游
Posted
技术标签:
【中文标题】在 GIT 中获取远程上游【英文标题】:Fetching remote upstream in GIT 【发布时间】:2021-01-13 18:36:34 【问题描述】:我是 GitHub 的新手,我对上游和本地更改有点困惑。这是我的情况。任何建议都非常感谢。
我创建了一个 git 存储库,现在我已经设置了上游和来源。
如果我在下面输入命令
git remote -v
This gives me 2 repositories
origin (points to my forked path)
upstream (points to my parent project path)
现在,这里是混乱。如果我去 GitHub 看看分支。它显示master
和develop
分支。如果我检查这两个的链接,它是相同的。那么如何区分哪个是开发分支,哪个是主分支。
现在,这是我的事。如果我检查我当地的分支机构。我只看到一个主分支。我不能直接在主分支上工作。我必须在开发分支上工作并将更改推送到父的开发分支。
我尝试了这些步骤
git checkout -b develop (From the local master branch)
git pull upstream/develop.
现在这是否意味着,我已将所有更改从上游的开发分支拉到本地的开发分支?这令人困惑:(
现在,当我在本地开发分支中时,我使用以下命令从中创建了一个功能分支
git checkout -b "feature1"
现在我处理更改并通过键入以下命令推送更改以供同行评审
git add .
git commit -m "feature added"
git push -u origin feature1
此时,我已经在 GITHUB 推送了 PR。我去 github 并提出 PR 以从我的分支合并到上游开发分支。更改已合并。
现在我使用以下命令从我的功能分支返回本地开发分支
git checkout develop
如何将我刚刚合并到上游开发的最新更改拉到本地的开发分支。因为如果我尝试任何东西,我仍然无法获得我在上游开发中更新的最新更改。
【问题讨论】:
【参考方案1】:git checkout -b <some branch>
在当前 HEAD 之上创建本地新分支。
如果分支已经存在,则不要创建它,只需切换到它,它将已经连接到上游分支。
git clone <my repo>
# assumming you will be on master branch after clone just switch to develop
git checkout develop
# just pull recent changes anytime something new could appear on origin
git pull
如果您已经创建了本地 develop
,您可以随时将其删除,然后再次切换到不存在的开发环境,该开发环境将首先尝试从原点拉取它:
# let's say we are on local develop then go to another branch
git checkout master
# delete local develop
git branch -D develop
# switch to develop should checkout develop which will be tracking origin develop
git checkout develop
# and again if sth new appears on origin just pull it
git pull
【讨论】:
【参考方案2】:要切换到本地机器上的develop
分支,请执行:
git checkout develop
一旦您进入develop
分支,请使用以下命令进行确认:
git branch
上述命令应突出显示develop
分支。
合并 PR 后,只需执行:
git pull origin develop
这会将合并的远程更改(来自develop
)拉到您的本地(develop
)分支。
【讨论】:
以上是关于在 GIT 中获取远程上游的主要内容,如果未能解决你的问题,请参考以下文章