请问使用github,如何正确的进行push代码?

yuhonglei4025 发布于 2014/08/26 15:39
阅读 5K+
收藏 0

大家好,

我刚刚接触github,在学习的过程中,看到一篇文章:

http://www.csdn123.com/html/exception/704/704557_704554_704558.htm?txt2

其中讲到merge pull request:

//让git追踪到远程的要合并的代码库
$ git remote add xxx git://github.com/xxx/jquery.git
熟悉git操作的朋友们都知道这是向自己的代码库,添加一个remote节点。假设,我本地库为A,我的github库为B,此xxx为库C。

正常来讲,库A和C是clone库B而来(从某一点上,即某个提交上,我们曾经是一样的),我本地的库A是随时保持和库B更新一致的。而库C,做了一些更改,想我提交代码。如果,我将C库添加为A库的remote,会是什么结果?如果有100个人向我提交代码,那我有100个remote吗?如果这100个remote点,又分别对代码做了不同的修改,你们想过在我本地A库执行git fetch --all的后果吗(假设部分remote做了大量修改,有很多分支)?

我确信,这种merge代码的方法是错误的,也不知道为什么流行。

还有第二个方法:

//应用这个分支的改动
$ curl http://github.com/github/jobs/pull/25.patch | git am
$ git push origin master
这个更奇怪,用curl命令,然后git am。这种做法更错误了,在git中每个commit所保存的信息,是从第一个提交到这个提交,资源库中所有的静态的状态,各个点是可以追溯的。这种方式完全是在本地A库做一个新的提交,根本没有C库的事,如果在C库中连续做了3个提交,而A库中只提交一个,完全丢失了那3个提交的依赖关系。

各位使用github的大神,你们是如何提交代码的?请赐教啊。

以下是问题补充:

@yuhonglei4025:在文章http://www.worldhello.net/gotgithub/04-work-with-others/010-fork-and-pull.html中,提到了类似的方法: $ git merge gotgithub/master Updating 00c6c4b..7ecdfe7 Fast-forward errata.mkd | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) 这是做了一个分支的合并。把对方的分支并入本地的分支。也可以,但remote的逻辑也是错误的。 (2014/08/26 16:17)
加载中
0
yuhonglei4025
yuhonglei4025

在http://www.worldhello.net/gotgithub/04-work-with-others/010-fork-and-pull.html页中,

只有最后一个用法是正确的:

简化的 Fork + Pull Request

因为这里做pull request,把代码push到原开发库的patch-1分支上。如果我是这个开源项目的管理者,通过git fetch命令,可以把patch-1的代码下载到本地,进行merge。

0
yuhonglei4025
yuhonglei4025
发现写 http://www.worldhello.net/gotgithub/04-work-with-others/010-fork-and-pull.html的是git pro的作者,实在是误人子弟,错误地使用了git remote add命令。
返回顶部
顶部