在使用git将其推出之前,是否应该始终从您所在的分支中拉出

在使用git将其推出之前,是否应该始终从您所在的分支中拉出,git,gitlab,Git,Gitlab,我和一小队人一起工作。我们有一个UAT分支,我们都在努力。因此,我昨晚对UAT分支进行了更改,但直到今天早上才推出带有更改的UAT分支。为了安全起见,我通常会在每天早上工作的树枝上拉一下。今天早上我被告知,其他团队成员对UAT分支进行了更改,我推动的UAT分支没有新的更改,因为我没有拉动 我理解我们应该进入我们正在工作的新分支,但是作为一个团队,不应该在开发时间上有一个中断。这样开发者就不会遇到这个问题了 或者说,总是把精力放在你正在工作的分支上,这仅仅是一种良好的做法吗?这就好像你在向错误敞开

我和一小队人一起工作。我们有一个UAT分支,我们都在努力。因此,我昨晚对UAT分支进行了更改,但直到今天早上才推出带有更改的UAT分支。为了安全起见,我通常会在每天早上工作的树枝上拉一下。今天早上我被告知,其他团队成员对UAT分支进行了更改,我推动的UAT分支没有新的更改,因为我没有拉动

我理解我们应该进入我们正在工作的新分支,但是作为一个团队,不应该在开发时间上有一个中断。这样开发者就不会遇到这个问题了

或者说,总是把精力放在你正在工作的分支上,这仅仅是一种良好的做法吗?这就好像你在向错误敞开心扉

总是把注意力放在你所处的分支上,这仅仅是一种良好的实践吗 在做什么

实际上,我想说的是,在提交任何更改之前,您应该先提取项目

我喜欢做的是:

git stash # Stash your local changes
git pull  # Update code
git stash apply # Merge your local changes
git add
git commit
git push
这就好像你在向错误敞开心扉


我看不出你怎么会犯错误。我认为恰恰相反。

在正常配置中,如果不先拉(并且拉有更改),则推会被拒绝。因此,有几件事是正确的:

1) 您可能在
push
命令上使用了
-f
-force
-force with lease
选项。通常情况下,除非您有特定原因并与所有其他回购用户进行了协调,否则您不应这样做。如果滥用“武力推动”成为团队的一个长期问题,他们可以远程禁用

2) 也许您的配置默认设置为执行强制推送(即,推送到原点的默认REFSEC可能以
+
开头)。这必须是出于某种原因故意设置的,所以我怀疑这是怎么回事;但如果是这样的话,解决办法是:不要那样做

3) 这可能是一个观察错误,有人认为他们推了你推过的东西,但他们错了

因此,对于您的问题:是的,整合更改的模型是“先拉后推”,但不这样做的后果是您的推送被拒绝,您必须以正确的方式重试。(如果这样一个错误的结果是丢失了其他开发人员的更改,那么这种情况将一直发生,git将毫无用处。)这意味着“尝试推送,如果失败,则先拉后推”是一个完全有效的工作流

不,开发时间不需要中断。git的全部要点是,即使在缺乏任何通用协调手段的全球分布的特设开发团队中,git也可以使用