[英]git fetch and pull
在这里,我们正在将源代码迁移到github,而这一交易让我头疼:)
我做了什么:我去了我们的工作区(一个Eclipse项目),并做了git init
和git 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.