我已经开始尝试通过在我的空闲时间提供小错误修正来贡献一大片(一千万左右的C ++系列),着名的开源项目。该项目由Git管理,我完全不熟悉。我试图找到有关如何最好地使用它的信息,但我似乎发现的是关于琐事的复杂宗教争论,比如是否使用git fetch
或git pull
。任何人都可以非常简单地告诉我,为了促进以下工作流程,我需要执行哪些命令?
答案 0 :(得分:4)
查看完整的来源。
git clone git://url
开始处理某些功能或错误修复
如果您同时处理多件事,建议您这样做 为每个功能分别创建分支。这些通常都是 被称为主题分支。
git checkout -b <branch name> <desired base commit>
继续每天检查完整的源代码并合并我的更改 远在它。
如果您使用主题分支,则可以使用简单的git pull
。相反,如果
你正在做大师(你跳过第(2)步),然后我会
建议使用git pull --rebase
。这样你的工作将以此为基础
关于源头大师的最新提示。
生成一个补丁,其中包含了我的树和树之间的所有差异 远程主存储库
一旦你确信你已经编写了一个无错误的功能(好的
幸运!)您可以合并更改(如果您使用主题分支)
通过git merge master
,解决所有冲突并提交。然后你可以
使用
git format-patch <base commit for your feature>
(必要时)回滚自上次提交以来的任何更改
要回滚,您可以使用git reset <options>
。有几个
选项,我建议你看看man git-reset
差异非常微妙。如果你想摆脱你的工作
完全(你真的确定吗?),--hard
选项应该这样做
特技。另一方面,如果要还原已提交的更改
如果单独提交,git revert <commit>
就是你的朋友。
(必要时)回滚我的树和树之间的任何差异 远程主存储库
不确定你的意思,但如果你的意思是更新本地回购 根据上游的最新变化,我相信(3)解决了这个问题。
答案 1 :(得分:1)
1$ git clone <repository> <directory>
2$ <edit as you please> # suggest 'git checkout -b <new branch>' prior to edit
3$ git pull origin master
4$ git push origin master # you probably won't have permission for this, ask repo admins
5$ git reset --hard
6$ git checkout -b <new branch> origin/master # not a rollback, just leave your stuff and shift to a new branch.