任何人都可以给我一些关于如何使用Git的指导,以便我可以进一步阅读这些手册。现在手册对我来说太复杂了。
我使用的是开源代码,我不是核心开发人员,但我也在开发我的领域的一些模块。但核心团队不会接受我的发展。我希望我可以在存储库或类似的东西中备份我的所有修改和新添加的模块,我可以在github上看到它们。但与此同时,我希望继续更新核心开发人员所有未更改的文件,如果存在冲突或文件,我只想保留我的。
那么,我应该创建一个新分支,还是创建一个分支,或者创建一个新的存储库?
例如,在git clone blahblah之后,几天后,我git pull to uodate,然后我修改了一个文件-A,并在B下添加了一个新的目录B和一个文件C.我现在该怎么办?因为每当我再次git pull时,就会出现一个警告错误,说某些文件存在冲突。
谢谢,这非常有帮助。
如果我错了,请纠正我,我现在需要做的是:
转到github,并制作原始项目仓库的分支。这是否意味着我在我的帐户下创建了一个新的回购?
然后,这个新的repo会有一个git链接地址,是吗?
然后我就在我的电脑上使用,git clone this_new_git_repo_link来复制整个项目。
在我自己的计算机上添加或修改,并学会提交所有更改,
然后这些更改将通过我的新回购从在线github上看到。
当上游,有一个变化,在我自己的计算机上,我创建了一个名为“上游”的新分支?从我自己的fork repo复制的原始版本默认名为“master”,
然后使用命令checkout切换到上游分支,然后执行'git pull',这将在我自己的计算机上创建两个版本,一个是更新版本,另一个是我的修改版本。
这里的问题是如何将这个更新的分支“upstream”合并到我自己的分支“master”中,只是合并那些我从未改变过的文件的命令是什么。所以在stwitch回到我自己的“master”分支后,我可以做一个提交,所以我的在线仓库将同时进行上游更新和我自己的修改。
答案 0 :(得分:1)
如果您和其他开发人员正在使用github,那么我会将主仓库分叉并将其设置为上游。然后,您可以在自己的主分支中工作,并根据需要推送和完成自己的工作。如果上游分支发生更改并且您想要提取更改,您可以考虑创建一个新分支以轻松标记您所在的位置(您以后可以随时删除此分支),然后切换回主分支然后上游更改主分支。您可能会遇到合并冲突,但git会在主分支的文件中标记这些冲突。如果您不喜欢核心开发人员的更改,您可以删除他们添加的所有或部分冲突代码,然后保持正常工作。
您可以无限期地重复此循环,以便与核心保持相对最新。
答案 1 :(得分:1)
回答您的更新:您必须在4到5之间推送到您的github仓库(origin
)。
7:根据GitHub guide,您已将upstream
遥控器添加到本地仓库。获取后(git fetch upstream
),修改位于远程分支upstream/master
。
大多数情况下,您希望使用git rebase upstream/master
在此分支上重新您的更改(即仅您所做的更改),或者将其合并使用git merge upstream/master
到您的分支机构。
8:一旦你与上游重新组合(或合并),继续像往常一样工作:提交,推送。更改将在您推送时发布,并将在您的 synchronized-with-upstream版本上发布。