找回密码
 FreeOZ用户注册
12
返回列表 发新帖回复
楼主: coredump
打印 上一主题 下一主题

[IT技术] 开帖介绍GIT (更新git学习资源列表)

[复制链接]
31#
发表于 10-7-2014 00:17:24 | 只看该作者



Linus确实厉害,这里谈到有关BitKeeper和Linux之间的一些事情,大家可以八卦一下
《BitKeeper and Linux: The end of the road?》
http://archive09.linux.com/feature/44147

评分

参与人数 1威望 +50 收起 理由
shyaka + 50 谢谢分享!

查看全部评分

回复  

使用道具 举报

32#
发表于 10-7-2014 00:18:38 | 只看该作者
cais 发表于 9-7-2014 23:05
git一直在用。现在有时还用mercurial。
产品方面,Bitbucket跟Stash都在用。不过Stash是要收钱的。以前的公 ...



mercurial和git比较有什么区别和特色?cais分享一下。
回复  

使用道具 举报

33#
发表于 10-7-2014 03:10:57 | 只看该作者
一篇很好的git flow教程,必需要看:
http://nvie.com/posts/a-successful-git-branching-model/
回复  

使用道具 举报

34#
发表于 10-7-2014 20:26:10 | 只看该作者
ubuntuhk 发表于 9-7-2014 23:18
mercurial和git比较有什么区别和特色?cais分享一下。

没什么太大的区别吧。
就是用惯了一个再用另一个的时候,经常要抱怨。
回复  

使用道具 举报

35#
发表于 10-7-2014 20:27:09 | 只看该作者
相关的资源还有这个https://www.atlassian.com/git/
好像主要是面向svn用户的。
回复  

使用道具 举报

36#
发表于 10-7-2014 20:27:38 | 只看该作者
cais 发表于 10-7-2014 19:26
没什么太大的区别吧。
就是用惯了一个再用另一个的时候,经常要抱怨。


嗯,有点像切换开发语言,php、perl、javascript
回复  

使用道具 举报

37#
发表于 10-7-2014 23:49:47 | 只看该作者
shyaka 发表于 9-7-2014 21:13
据说当年,BitKeeper给Linux代码免费提供版本控制,但Linux社区的牛人中有几个人把BitKeeper玩残了,BitKee ...
Linus没理,3周后写出了GitHub。。。。

GitHub 。。。。 Linus。。。。
回复  

使用道具 举报

38#
发表于 11-7-2014 01:54:56 | 只看该作者
finger|regnif 发表于 10-7-2014 22:49
GitHub 。。。。 Linus。。。。


哈,你眼神好尖
回复  

使用道具 举报

39#
 楼主| 发表于 16-7-2014 09:42:54 | 只看该作者
本帖最后由 coredump 于 16-7-2014 08:44 编辑
ubuntuhk 发表于 9-7-2014 21:58
看到老丐2008年就开始介绍git了,我到最近才开始认真用,越用越爱,赞!


UB挖坟技术一流. 不过最近工作的公司不用git,用perforce了,让我很不爽。尝试了下用git-p4本地使用,不过发现git管理超大型项目(文件数量100k+, size 10G+, 还有各种binaries)还是很吃力的(各种优化后git status还需要20多秒...).

Facebook一开始用git,用到瓶颈后也没解决[url=http://thread.gmane.org/gmane.comp.version-control.git/189776]git的性能问题[/url],只好切换到了Mercurial.   Scaling Mercurial at Facebook

管理超大型代码库,除了Perforce外,还有个后起之秀PlasticSCM, 这个算是结合和 Perforce和Git的优点,有Perforce的性能和企业级功能优势,但是还是像git一样是DVCS.

评分

参与人数 1威望 +50 收起 理由
ubuntuhk + 50 谢谢分享!

查看全部评分

回复  

使用道具 举报

40#
发表于 16-7-2014 09:45:45 | 只看该作者
回复  

使用道具 举报

41#
发表于 16-7-2014 13:11:22 | 只看该作者
coredump 发表于 16-7-2014 08:42
UB挖坟技术一流. 不过最近工作的公司不用git,用perforce了,让我很不爽。尝试了下用git-p4本地使用,不 ...


才刚刚开始熟悉git,你又说它落伍了,哭。。。不过我觉得对于中小项目,git还是非常不错的,而且现在也非常成熟。git管理binary确实是个毛病,有朋友建议用artifactory管理binary文件,git只负责源码管理,这也是一个没办法的办法,让系统复杂度更高了。

老丐,这个话题值得你再开一个帖子,哈。

回复  

使用道具 举报

42#
 楼主| 发表于 16-7-2014 13:36:51 | 只看该作者
ubuntuhk 发表于 16-7-2014 12:11
才刚刚开始熟悉git,你又说它落伍了,哭。。。不过我觉得对于中小项目,git还是非常不错的,而且现在也 ...

同意,不能用git实在不爽。 其实大部分超大型项目都可以用git,只不过要转变使用习惯。比如建立一系列的小git repo, 就像Android一样,这么大的项目也用git管理起来了。另外比较大的binary files,不要放在source control里为好
回复  

使用道具 举报

43#
发表于 16-7-2014 13:48:50 | 只看该作者
coredump 发表于 16-7-2014 12:36
同意,不能用git实在不爽。 其实大部分超大型项目都可以用git,只不过要转变使用习惯。比如建立一系列的小 ...


对啊,没有binary文件在源码里面,源码再怎么大也大不到哪里去,git本来就不是为binary文件设计的,所以git没有一个管理binary的好机制。

没有万能军刀,只能根据实际情况来选择最适合的工具。
回复  

使用道具 举报

44#
发表于 16-7-2014 14:43:45 来自手机 | 只看该作者
提示: 作者被禁止或删除, 无法发言
本帖最后由 black_zerg 于 16-7-2014 13:46 编辑

I am very interested in git. This is a great post.
回复  

使用道具 举报

45#
发表于 20-7-2014 00:15:38 | 只看该作者
我觉得还不错的git文档:

  - 入门教程
     用slide的形式,比较浅显移动
       http://www.slideshare.net/icyleaf/git-14214592

  - 简易入门
     一页解释git常用命令,但是最好需要自动动手练一下,开个github账号建立一个helloworld项目吧
        http://www.bootcss.com/p/git-guide/

  - git工作流
      用工作流更好地利用git来管理项目源码
       http://yedingding.com/2013/09/11 ... w-for-startups.html

  - git官方文档
    什么问题搞不明白的,就上大而全的官方网站吧
    http://git-scm.com/book/zh

评分

参与人数 1威望 +50 收起 理由
蒙面超人 + 50 谢谢分享!

查看全部评分

回复  

使用道具 举报

46#
发表于 20-7-2014 23:50:14 | 只看该作者
天资愚钝,好多东西不是很明白。可能也是受CVCS毒害太深。初步的认识是GIT没有server的概念,一切都在自己的本地目录做vision control。两个问题是:
假如这个目录挂了或者被删了怎么办?
怎么样将本地目录的更新跟别的开发版本merge呢?
回复  

使用道具 举报

47#
发表于 21-7-2014 01:53:39 | 只看该作者
linux可以不用,但是git缺少不了。从git就可以看出linus真的是一个不世天才。
回复  

使用道具 举报

48#
发表于 23-7-2014 20:46:17 | 只看该作者
本帖最后由 finger|regnif 于 23-7-2014 17:50 编辑
蒙面超人 发表于 20-7-2014 20:50
天资愚钝,好多东西不是很明白。可能也是受CVCS毒害太深。初步的认识是GIT没有server的概念,一切都在自己的 ...


git 每个人的 repository 都能完整的存储所有信息. 当然如果你只是一个人玩的话, 删除了就没有了.
一个人玩的话可以备份到 github, bitbucket 之类的服务器上, 还能得到一些额外的功能 如 issuer tracker, wiki.

跟别的版本merge的话要看你用的什么了.

两个repositories之间能通信就行, 或者是通过第三方(如github, 如本地的服务器)进行共享.
如你可以在一台机器上有两个repository (c:\repo1, c:\repo2), 然后在repo1中用 git pull c:\repo2 就能直接从repo2 拉取代码.

两台局域网机器之间可以使用文件共享, 或者用一个服务器 client1 push 到 server, client2 pull from server, client 和 server的通信协议可以ssh, http, git, 文件共享.

github: 你发现某个开源项目 openssl 有 bug(通常你不会有权限对他们的代码直接修改), 于是fork一下 openssl 到你的github账号, 在你的开发机上对你的 openssl 项目进行clone从而下载代码到你的机器上. 然后你修复了这个bug 并 push 你的代码到你的 github/openssl. 你创建一个将 你的github中的代码 合并到 openssl  的 pull request. openssl 项目的开发人员将你的pull request merge到他们的代码中.

github: 如果你是openssl的开发人员, 那你可以直接 clone/modify/push, 不需要fork一个到你的账号.  当然你可能需要遵循该项目的一些规则.

取决于不项目的策略, 你可能会使用不同的开发方式:
   

    * Checkout a branch(e.g. master)->modify->commit->push to server.

   

    * 发现一个bug, 在服务器上创建一个issue, 说明一下bug原因, 如何解决之类的, commit 的时候引用 #191
        这样看commit的时候就能link到issue, 从而比较容易知道你当时为什么要改代码.

     

    * 同上, 但这次使用pull request/review/merge. 发现一个bug,
       
    • 创建一个单独的branch来修复这个bug.
    • push这个branch到github.
    • 创建一个将 你的新branch merge 到 master(通常是master吧) 的pull request.
    • 某(些)人 review the changes on your branch, 如果他觉得OK的话就按一下merge按钮.


    以上openssl纯属举例, 不一定真的有这个项目在github上. 太灵活太多选择有时候也不是什么好事.

评分

参与人数 2威望 +100 收起 理由
蒙面超人 + 50 谢谢分享!
ubuntuhk + 50 你太有才了!

查看全部评分

回复  

使用道具 举报

49#
发表于 23-7-2014 21:05:35 | 只看该作者
蒙面超人 发表于 20-7-2014 22:50
天资愚钝,好多东西不是很明白。可能也是受CVCS毒害太深。初步的认识是GIT没有server的概念,一切都在自己的 ...



48# finger|regnif 的帖子总结的不错。

我再补充一下如果删除本地目录或者本地仓库挂了的情况,如果你在远程仓库的目录还在,那么只是本地的修改不见了而已,不会影响远程的仓库。

远程仓库可以是github.com或者其它git server上的同源git项目。

其实最好的学习办法就是找一个git教程,跟着练习一遍,当然如果公司有项目用到git,跟着公司项目做一遍是更好的实践办法。
回复  

使用道具 举报

50#
发表于 23-7-2014 22:26:27 | 只看该作者
如果公司还在用svn,就装个git-svn,用git的界面跟svn server连接。以后找工作就能号称用过git了。
回复  

使用道具 举报

51#
发表于 23-7-2014 23:27:13 | 只看该作者
谢谢@finger|regnif和UB!大概证实了我的想法。虽然GIT是DVCS,但是还是需要一个数据中枢做“server'保存核心的版本。
我们公司使用微软的TFS做VCS,不是不好用,就是要merge的时候很多conflict很麻烦。GIT的话不知道有什么特殊的Merge方法?大家讨论一下,我先看看文档。

我还没得要领,DVCS相对CVCS除了每个分支都有完整的拷贝外,还有什么特别的优势呢?
回复  

使用道具 举报

52#
发表于 24-7-2014 16:20:01 | 只看该作者
蒙面超人 发表于 23-7-2014 20:27
谢谢@finger|regnif和UB!大概证实了我的想法。虽然GIT是DVCS,但是还是需要一个数据中枢做“server'保存核 ...

有conflict 时 merge 应该都一样. 可能某些merge工具(如kdiff)能自动merge 一些conflict.

DVCS (被)乐观地认为开发人员的修改不会有冲突, 不进行传统的 开发人员checkout -> 服务器对checkout的文件进行lock -> 开发人员checkin->服务器unlock文件 (当然也不能说 CVCS 就不能乐观). DVCS  的可以进行离线修改代码, 上线之后再进行合并.

优点请楼下补充.
回复  

使用道具 举报

53#
发表于 24-7-2014 17:39:05 | 只看该作者
finger|regnif 发表于 24-7-2014 15:20
有conflict 时 merge 应该都一样. 可能某些merge工具(如kdiff)能自动merge 一些conflict.

DVCS (被)乐 ...

嗯,我也赞同离线管理这一特点。不过这不足以说服我们部门改用GIT,因为大家基本上都是在上班的时间开发,所以基本都在线。GIT的学习成本相对其他系统太高了,TFS,SVN基本拿来就会用。
回复  

使用道具 举报

54#
发表于 24-7-2014 18:12:08 来自手机 | 只看该作者
提示: 作者被禁止或删除, 无法发言
本帖最后由 black_zerg 于 25-7-2014 12:35 编辑

I think most git docs or books are very complex, not worth reading. I personally think git should only have ten commands and one page document. maybe a good GUI can ease the pain. I really don't like its complexity and the lacking of useful docs. Most people only want to get the job done and shouldn't need to understand the implementation.

attached 3 bat files, update, commit and discard. it's for lazy guys like myself.

git-simple.zip

465 Bytes, 下载次数: 2

回复  

使用道具 举报

您需要登录后才可以回帖 登录 | FreeOZ用户注册

本版积分规则

小黑屋|手机版|Archiver|FreeOZ论坛

GMT+11, 15-11-2024 00:15 , Processed in 0.039554 second(s), 45 queries , Gzip On, Redis On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表