什么时候我需要拉动才能推入Git?
如果A和B正在处理同一git回购协议,并且A在功能分支上推送更改:什么时候我需要拉动才能推入Git?,git,Git,如果A和B正在处理同一git回购协议,并且A在功能分支上推送更改:A-feature到B之前的回购协议,B现在需要在推送之前进行拉操作 但这种情况的确切条件在哪里?例如,它是否适用于推送到回购协议的分支机构的任何变更?或者只有当A和B被推到同一个分支时才是这样?这意味着B可以推到B-feature,即使A只是在他前面推了A-feature 这意味着即使A在他前面推了A功能,B也可以推到B功能 对。只有在推送到由其他人更新的分支时,才会收到警告: hint: Updates were reject
A-feature
到B之前的回购协议,B现在需要在推送之前进行拉操作
但这种情况的确切条件在哪里?例如,它是否适用于推送到回购协议的分支机构的任何变更?或者只有当A和B被推到同一个分支时才是这样?这意味着B可以推到B-feature
,即使A只是在他前面推了A-feature
这意味着即使A在他前面推了A功能,B也可以推到B功能
对。只有在推送到由其他人更新的分支时,才会收到警告:
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
git-pull
的唯一替代方法是git-push--force
(如果B
推动a-feature
,这将用B
覆盖a
发布的历史,这是不好的)。见“”
如果除了
B
之外没有人在处理B-feature
,那么当B
想要将本地B-feature
分支推送到上游回购时,就不需要拉:推将是一个快进的推:您正在远程分支的顶部添加新的提交。为什么B需要在提交之前拉入a的更改(或她)可以将他们自己的更改推送到同一分支,否则B将重写历史(删除A的提交以支持他们自己),A的提交(不属于B的本地分支)将丢失
只有当您推送到同一个分支时才会出现这种情况,因此B可以推送到另一个分支,而不必先拉A的提交。在这种情况下,A和B的提交将在稍后合并分支时合并
如果您想推送到远程分支,即使它包含不在本地分支中的提交,您也可以指示git不要警告您,并继续推送,使用
git push--force
(或git push-f
)(特别是当您与其他人一起工作时)不建议这样做。不在本地分支中的提交将从远程分支中删除。Git中的每个分支都是按时间顺序提交的
当您想要推送一个不是基于该分支的最新提交的提交时,您需要先拉中间提交(这可能涉及手动合并)
这只是多个用户推送到同一个分支时的问题。当每个用户分别在一个个人分支上工作时,他们在推送之前永远不必先拉。当然,除非他们有意合并其他人的分支。应该可以在没有拉送的情况下推送到不同的分支可能值得一提ce推送。@Jubobs是真的。我添加了一个链接,指向一个旧答案,该链接演示了git推送--force的效果。很酷。手边有一大堆旧答案真好:)