Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.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:2名开发人员在master branch工作:(_Git - Fatal编程技术网

git:2名开发人员在master branch工作:(

git:2名开发人员在master branch工作:(,git,Git,嗯,我没有遵循最佳实践,我现在有点卡住了,不知道该怎么做 我在master branch工作,另一个开发人员也做了同样的工作。他将自己的更改推到了origin/master。我没有推我的更改,只是在local中做了几次提交。现在我的工作目录中没有更多的开发。我如何清理这些 在我这边做一次获取就可以在origin/master上完成最后一次修改,而不会把整个事情搞砸吗?您应该可以从origin执行git pull。它会将新内容合并到您的本地分支中。然后您也可以将提交的本地更改推送到origin。如

嗯,我没有遵循最佳实践,我现在有点卡住了,不知道该怎么做

我在master branch工作,另一个开发人员也做了同样的工作。他将自己的更改推到了origin/master。我没有推我的更改,只是在local中做了几次提交。现在我的工作目录中没有更多的开发。我如何清理这些


在我这边做一次获取就可以在origin/master上完成最后一次修改,而不会把整个事情搞砸吗?

您应该可以从origin执行git pull。它会将新内容合并到您的本地分支中。然后您也可以将提交的本地更改推送到origin。如果有任何冲突,git会警告您关于这一点,将标记它们,以便您可以手动解决它们。无需担心,因为这正是git所擅长的东西。

您应该能够从源站执行git拉取操作。它将把新内容合并到您的本地分支中。然后您也可以将提交的本地更改推送到源站。如果有的话任何冲突git都会警告您,并将标记它们,以便您可以手动解决。无需担心,因为这正是git擅长的地方。

如果您运行
git fetch origin
,它将更新
origin/master
和所有其他远程跟踪分支。(它们本质上类似于
origin
上那些分支状态的缓存)

现在,如果您只需执行
git merge origin/master
,您应该能够执行
git push origin master
,因为现在您的
master
的历史记录将包括
master
来自
origin
的历史记录

如果您为保存线性历史而烦恼(许多人似乎都是这样),您可以在推之前执行
git-rebase-origin/master

作为执行
git fetch origin
然后执行
git merge origin/master
git rebase origin/master
的(近似)快捷方式,您可以执行以下操作:

 git pull origin master
…或:

 git pull --rebase origin master

…但就我个人而言,单独执行fetch和merge/rebase更为清晰。

如果运行
git fetch origin
,将更新
origin/master
和所有其他远程跟踪分支。(它们本质上类似于
origin
上那些分支状态的缓存)

现在,如果您只需执行
git merge origin/master
,您应该能够执行
git push origin master
,因为现在您的
master
的历史记录将包括
master
来自
origin
的历史记录

如果您为保存线性历史而烦恼(许多人似乎都是这样),您可以在推之前执行
git-rebase-origin/master

作为执行
git fetch origin
然后执行
git merge origin/master
git rebase origin/master
的(近似)快捷方式,您可以执行以下操作:

 git pull origin master
…或:

 git pull --rebase origin master

…但就我个人而言,我认为单独进行获取和合并/重设基址更为清晰。

将更改重设基址到新的主控形状上,然后推送

git rebase origin/master
git push origin
当然,如果存在任何合并冲突,您必须解决它们(在解决
git-rebase之后——继续
,但该工具将告诉您在发生冲突时如何处理)

如果愿意,您可以合并分支(即使您曾经从master克隆过分支,它仍然是您的分支):

您将有相同的合并,也可能有相同的冲突,但历史会有微妙的不同:在新的主分支末尾重新设置“组”所有提交的基础,而合并将使它们在发生时分散显示(按时间顺序,而不是拓扑顺序)


干杯

在新主控台上重新设置更改的基础,然后按

git rebase origin/master
git push origin
当然,如果存在任何合并冲突,您必须解决它们(在解决
git-rebase之后——继续
,但该工具将告诉您在发生冲突时如何处理)

如果愿意,您可以合并分支(即使您曾经从master克隆过分支,它仍然是您的分支):

您将有相同的合并,也可能有相同的冲突,但历史会有微妙的不同:在新的主分支末尾重新设置“组”所有提交的基础,而合并将使它们在发生时分散显示(按时间顺序,而不是拓扑顺序)


干杯

Thx让我注意到拉的--rebase选项。从未使用过one@mark-longair,我也不熟悉重设基础选项。我只能这样做,因为我的本地更改已经提交了吗?如果我的本地工作存储库中有一些挂起的开发,该怎么办?@Luc:git不会让你重设基础,除非你有清理工作树,所以,是的,您确实需要首先提交您的工作。由于
git-rebase
重写了您分支的历史记录,我可能会坚持使用普通的
git-merge-origin/master
git-pull-origin-master
,直到您对git.Thx更加自信,因为它让我注意到了拉,从来没用过one@mark-longair,我也不熟悉重设基础选项。我可以这样做是因为我的本地更改已经提交了吗?如果我的本地工作存储库中有一些挂起的开发程序呢?@Luc:git不会让你重设基础,除非你有一个干净的工作树,所以,是的,你确实需要提交你的工作首先,由于
git-rebase
重写了您分支的历史,我可能会坚持使用普通的
git-merge-origin/master
git-pull-origin-master
,直到您对git更有信心。您可能需要明确指出,可能出现冲突的地方是在合并之后,而不是在推送sinc之后这通常是一个混乱的来源。你是对的,git在合并时会显示冲突。如果推送时出现问题