Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么时候我需要拉动才能推入Git?_Git - Fatal编程技术网

什么时候我需要拉动才能推入Git?

什么时候我需要拉动才能推入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

如果AB正在处理同一git回购协议,并且A在功能分支上推送更改:
A-feature
B之前的回购协议,B现在需要在推送之前进行拉操作

但这种情况的确切条件在哪里?例如,它是否适用于推送到回购协议的分支机构的任何变更?或者只有当AB被推到同一个分支时才是这样?这意味着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的效果。很酷。手边有一大堆旧答案真好:)