如何在GitLab中创建并提交一个分支

30

这个问题是为了回答其他人受益而提出的。但如果有人在我完成研究之前回答了这个问题,我会很感激。

如何从shell中分支一个现有的git repo(我拥有开发者访问权限),编辑它,提交这些更改,然后将其push到服务器进行审核,然后再合并。

编辑

请注意,这不是我的项目,而是别人的项目。这个使用者给了我做一些工作的访问权限。完成后,我将请求他们将更改合并回原始版本。


1
嘿,能否采纳这个答案呢? - Sari Rahal
2个回答

26

要设置您的存储库,您需要遵循这些说明。然后您需要像这样克隆/分叉现有存储库。

接下来进行更改。完成更改后,您需要进行一个看起来像这样的“提交”。

git commit -m "I changed something somewhere"

然后,您将需要从存储库中拉取任何在您工作时可能已被推送的更改。

git pull origin master   // master being the branch that you cloned/forked

如果拉取没有冲突,你可以将你的更改推送上去。

git push origin master   // this is saying that you want to replace the remote master branch with your local master branch

编辑 如果想要将代码推送到一个没有覆盖主分支的远程仓库中,请执行以下操作:

git clone                   //clone what branch you want
git checkout -b new_branch  //this will create a new local branch
git push origin new_branch  //this will create a new origin branch

2
问题在于我不是仓库的主人,只是开发者。我可以fork/pull git,但无法提交更改。据我所知,我必须branch然后提交,等待批准,然后合并。 - puk
1
你是想推送你自己的记录,还是需要与当前分支的开发人员分享? - Sari Rahal
我是通过执行命令 mv sourcefolder destfolder 还是通过 Git 命令来重命名它?此外,我是通过打电话给那个人并用啤酒贿赂他来请求权限,还是有一种 Git 的方式可以做到这一点? - puk
你需要使用git重命名分支。这是上面的“git checkout -b [new_branch_name]”命令。我建议尝试将该分支推送并查看是否有效,如果不行,那就试试啤酒...应该会有用。 - Sari Rahal
1
@mathtick 这与用户名无关。他正在尝试创建远程分支以便在合并到远程主分支之前进行评审。 - Sari Rahal
显示剩余3条评论

4
如果我理解你的问题正确:
- 你没有权限推送到仓库 - 你想创建一个分支,进行一些提交,然后提出合并请求
这实际上是完全正常的情况,以下是具体操作步骤:
1. 在 GitLab 上 fork 该项目:这将在你的个人工作区中创建原始仓库的克隆。关键在于你可以向个人工作区推送。 2. 在你的电脑上,从你的 fork 克隆,而不是原始仓库。 3. 创建一个分支(`git checkout -b myfeature`),进行更改和提交,然后将此分支推送到你的 fork(`git push -u origin HEAD`)。 4. 在 GitLab 上访问你的 fork 页面,在页面顶部附近应该有一个按钮,提供你从刚刚推送的分支创建合并请求。单击它,审查更改,如果看起来不错,那么设置一个负责人并单击“创建”。负责人应该会收到电子邮件通知。
你不需要对项目拥有写入权限才能进行贡献。所有写操作都在 GitLab 的个人工作区和本地电脑上进行。合并请求的审核者可以接受或拒绝它。他们还可以要求你进行改进,你可以实现并推送(本地提交后简单执行 `git push`),这将更新合并请求(审核者可以重新加载浏览器中的页面并查看你的更改)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接