新手开源贡献者在这里。
我在GitLab上分叉了TortoiseGit repository,然后在我的计算机上克隆它,编辑了一个文件,并致力于分支master
。
几天过去了,我想用上游的最新更改来更新我的本地工作副本,然后推送到我的远程分支并打开合并请求(当然还要做更多的开发/测试等)。
我在我的仓库中添加了一个名为upstream
的遥控器,现在我不确定建议的操作是什么:
git pull
从upstream/master
到我签出的分支机构master
git pull --rebase
git fetch
紧随其后的是git rebase
。这些是我在研究过程中发现的方法。遗憾的是,我无法找到对每个项目的全面评论,也没有建议在GitHub,GitLab甚至是Linux内核等项目中使用哪一个是典型的做法。
我尝试了方法1和3.方法1(pull
)生成合并提交(--ff-only
不可能),我的历史在某种程度上受到污染。它也会造成冲突。方法3(rebase
)既没有,但我不确定rebase
在提交被推到远程后如何表现,所以我担心它可能会导致问题向前发展。
所以这是我的问题。 谢谢。
TortoiseGit团队成员在这里。
我在我的仓库中添加了一个名为upstream的远程控制器,现在我不确定建议的操作是什么: 1. git pull from upstream / master to my-out branch-master 2. git pull --rebase // 3. git fetch后跟git rebase。
不同的团队使用不同的工 见Pro Git (v2) - 5.1 Distributed Git - Distributed Workflows
在TortoiseGit团队中,我们更喜欢保持历史简单,贡献者通常有责任在变基时解决冲突。
因此,大多数情况下,我们使用“git fetch后跟git rebase”,特别是在贡献时。然后,如你所说,创建拉/合并请求(通过使用git push),或在GitHub / GitLab上更新拉/合并请求(通过强制使用git push)。
有关其他详细信息,请参阅How Can I Contribute?和HowToContribute.txt。
我在GitLab上分叉了TortoiseGit存储库,然后将其克隆到我的计算机上,编辑了一个文件,并提交到分支主服务器几天过去了,我想用上游的最新更改来更新我的本地工作副本
如果上游你指的是主要回购,你可以
git fetch origin
git rebase origin/master
假设origin
指向主要回购
Rebasing重播你当前分支(你的本地master
分支)的提交,你在这个案例中重新定位origin/master
,这是对master
当前origin
分支的引用。
例如:
你提交之前的master
分支:
提交后的master
分支:
几天之后,TortoiseGit git承诺origin/master
现在看起来像这样。
您可以通过在origin/master
上获取和重新定位来同步更改。您当地的master
分行现在看起来像这样:
我在我的仓库中添加了一个叫做上游的遥控器,现在我不确定推荐的动作是什么
然后你可以简单地git push upstream master
来更新你的前叉。