我正在使用gitlab。
首先,我没有找到" Pull Request" gitlab上的功能。我想这被命名为" Merge Request" ?
这是我想要理解的:
假设我们有一个名为project1的项目。这个项目是一个公共的gitlab项目,由user1编写。
现在,假设我们有一个贡献者(user2),他想在project1上更改某些内容。 以下是user2应该执行的步骤:
User1将在他的gitlab web界面中看到一个新的合并请求。假设user1同意user2所做的更改。
如果user1点击"合并"按钮,我可以看到一个链接,它解释了我应该键入哪些CLI命令。这是我想要了解的地方。
以下是命令:
git fetch git@gitlabserverofuser2/user2/project1.git brtest
git checkout -b localbrtest FETCH_HEAD
git checkout master
git merge --no-ff localbrtest
git push origin master
我理解FETCH_HEAD代表第一行提取的内容。我的第一个问题是我应该输入什么而不是FETCH_HEAD?我试图输入这个,但它不起作用:
git checkout -b localbrtest git@gitlabserverofuser2/user2/project1.git/brtest
我也输入了
git branch
git branch -a
git branch -r
我没有看到任何有关远程brtest分支的信息。我知道它可以与FETCH_HEAD关键字一起使用。但是,为了理解,我想知道"价值" FETCH_HEAD。
接下来的问题,为什么他们放一个没有快进的参数。省略此参数是否危险?风险是什么?
上一个问题:合并并没有向我展示冲突。它擦除并替换文件。 在某些情况下,当我在一个项目上使用本地分支时,我有时会看到在发生冲突时包含差异的文件。为什么git在合并请求时不会应用相同的行为?
由于
答案 0 :(得分:0)
FETCH_HEAD是指向git历史记录顶部的指针。最新状态。
答案 1 :(得分:0)
对于第二个问题,只有两个分支在同一位置修改了同一文件时,您才会发生冲突。之所以发生冲突,是因为git
不知道您实际上想要哪个更改。如果您没有进行任何有冲突的更改,则git会告诉您,然后您需要使用合并程序来选择要保留的更改。
您可能没有看到冲突,因为您在不同的部分上工作,并且不存在冲突。