github 的高级用户们,来做几道解释命令的题,我搬着小板凳洗耳恭听 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
northisland
V2EX    程序员

github 的高级用户们,来做几道解释命令的题,我搬着小板凳洗耳恭听

 
  •   northisland 2015-08-20 16:36:50 +08:00 4505 次点击
    这是一个创建于 3708 天前的主题,其中的信息可能已经有所发展或是发生改变。

    自己一直没系统的学过 git 命令相关的知识,更别说 hub 命令了。
    学到用时方恨少,最近想弄一个叫 caffe_future 的开源项目,安装的门槛都过不去 ToT 。请各位不吝赐教,帮我解释下面几个命令是在干嘛:

    1. git checkout master
    2. git branch -D future
    3. git checkout -b future
    4. hub merge https://github.com/BVLC/caffe/pull/1976

    多谢了,附带原始文档~
    https://github.com/longjon/caffe/blob/future/future.sh

    顺便问问, github 使用的入门经典有什么

    10 条回复    2015-08-20 20:50:14 +08:00
    Bensendbs
        1
    Bensendbs  
       2015-08-20 16:39:19 +08:00   1
    582033
        2
    582033  
       2015-08-20 16:39:31 +08:00   1
    1 切换分支
    2 删除分支
    3 创建分支
    4 未知
    sparkrat
        3
    sparkrat  
       2015-08-20 16:43:59 +08:00   1
    @582033 第三个是创建并切换分支, 创建分支的命令是 "git branch feature " 233333 第四个命令是什么鬼?
    ehs2013
        4
    ehs2013  
       2015-08-20 16:44:00 +08:00   2
    hub 是 GitHub 出的对 git 命令的扩展,这个命令就代表 merge GitHub pull request
    coolwdp
        5
    coolwdp  
       2015-08-20 16:46:45 +08:00   1
    https://git-scm.com/book/en/v2 推荐 pro git 。
    英文好看原版,不行就看中文版。由浅入深,非常不错的文档。
    看到一半基本就可以上手项目了。
    Alexisused
        6
    Alexisused  
       2015-08-20 16:55:32 +08:00   1
    zerh925
        7
    zerh925  
       2015-08-20 17:02:39 +08:00   1
    入门:廖雪峰
    进阶: ProGIt 2
    minfzhon
        8
    minfzhon  
       2015-08-20 18:20:46 +08:00 via iPhone   1
    切换分支,删除分支,新建分支。 github 上有个交互式教程, 18 个步骤把 git 的基础讲得特别清楚,可以去看看
    adrianzhang
        9
    adrianzhang  
       2015-08-20 20:24:49 +08:00   3
    Git 是版本管理,所以把一系列版本的文件(随时间变化,源代码文件夹里总是在变化的,每个 commit 叫做一个版本,意思是把当前的代码情况当成一个版本)做快照放仓库里。 Git 的仓库设计为分布式。好吓人的名词,对吗?其实说起来特别简单。所谓仓库,就是.git 文件夹。所谓分布式,就是在参与项目的每个人那里都有个一样的.git 文件夹。在一个源(也就是所谓“ git 服务器”)上,执行以下命令:
    $ mkdir source
    $ cd source
    $ git init
    运行完毕后,在 source 文件夹下就有了.git 文件夹( Git 仓库)。接着执行:
    $ touch test.txt
    $ git add test.txt
    $ git commit test.txt
    执行这些命令后,.git 文件夹里就存储了 source/test.txt 这个情况的一个快照,作为一个版本。如果此时我们在源这个服务器上建立了 web 服务,然后允许别人从这个仓库里下载代码去做开发,那么这个源就成了 GitHub 功能的服务器。假设这个服务器是我的,命名为 adrian , Git 库的网址是 https://adrian.com/source
    现在,你来了,要跟我一起开发,于是你执行了 git clone 。假设你用 mysource 作为存储代码的文件夹,那么现在你的机器上 mysource/.git 跟我机器上的 source/.git 完全一样。这就是分布式仓库。

    好了,解释你的问题:
    git checkout master
    git branch -D future
    git checkout -b future
    hub merge https://github.com/BVLC/caffe/pull/1976

    继续拿刚才那例子说明。你做了 git clone 以后, git 软件自动把你本地的.git 文件夹里当成初始分支(branch ) 命名为: master 。
    git checkout master #就是切换到 master 分支

    git checkout -b future #你想开发点功能,但是你改一点,别人改一点,会乱,怎么办?建立一个分支,等功能开发好了,合并到主代码去。这个命令就是新建一个分支 future 并将当前的工作切到这个分支里去,从此,你在 mysource/文件夹下做的更改通过 commit ,影响的都是 future 这个分支。假设你接着在 mysource 文件夹下增加了一个文件 test2.txt ,那么 git add, git commit 后, future 这个分支有了版本 2 。

    git branch -D future #删除刚才建立的 future 分支。这样你便回到了 master 分支,此刻 mysource 文件夹里刚才建立的 test2.txt 已经不见了,这是因为 master 分支里只有最初始的版本,而没有版本 2.

    hub merge https://github.com/BVLC/caffe/pull/1976 #这句是干什么?是说 git merge 吗? git merge 就是将你的改动合并到进来。比如刚才如果没删 future 分支,先执行 git checkout master ,回到 master 分支去,然后执行 git merge future ,那么 future 的版本 2 就被合并到 master 里去了。

    通常,是建立一个分支,合并到主分支,然后删除新建的分支这样的流程。

    至于其他的概念,你看 Git 官方手册吧。 http://git-scm.com/book/zh/v1/%E8%B5%B7%E6%AD%A5
    joshz
        10
    joshz  
       2015-08-20 20:50:14 +08:00   1
    廖雪峰的教程写得很好,基本点总结得到位,一天内就可以快速掌握。当然要深入还是要看书,推荐《 progit 》
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     961 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 19:39 PVG 03:39 LAX 12:39 JFK 15:39
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86