繁体   English   中英

git获取并拉

[英]git fetch and pull

在这里,我们正在将源代码迁移到github,而这一交易让我头疼:)
我做了什么:我去了我们的工作区(一个Eclipse项目),并做了git initgit add . 然后git commit -am "first commit"
一切正常,然后,我将其推送到github。 也成功。
但是有一个大问题:我的朋友刚刚对名为A.java的文件进行了更改,而我刚刚对B.java了更改。 好吧,没什么大不了的。 然后,他将其推送到github。 当我尝试推动时,我的推动被拒绝。 好的,我做了一个git pull github master ,然后再次推送,现在,我的“提交消息”变成Merge branch 'master' of github.com:germantech/projectName
好的,我在做什么错?
ps:对不起我的英语

您没有做错任何事-执行git pull github master ,git转到远程github指示的存储库,获取master分支所需的所有内容,然后将其合并到当前分支中。 拉动之前,您具有以下历史记录:

O --- A (master)

...其中O是带有消息“ firts commit”的提交,而A是将更改引入A.java的提交。 同时,您的朋友有以下历史记录:

O --- B (master)

...并且已经推送到GitHub。 当您的git pull github master将其合并到您的历史记录中时,它将创建一个“合并提交”以使用两个master分支的更改来表示树的状态:

O --- B --- M (master)
 \         /
   ---A ---

相反,如果您希望保持历史记录的线性,则可以执行git pull --rebase github master ,它将“重放”不在该分支的远程版本中的,位于该版本的删除版本之上的提交。分支:

o --- B --- A' (master)

有些人更喜欢-我个人不在乎。

您是在同一仓库中还是在不同仓库中? 如果您需要重新设置更改并再次推送

git pull --rebase github master
git push github master

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM