美文网首页git study程序员GitHub上有趣的资源
Git入门(一)概念配置和分支

Git入门(一)概念配置和分支

作者: 超儿 | 来源:发表于2014-04-17 17:53 被阅读1572次

    最近一直想学Git,终于找到了一个不错的教程,跟着做下来发现手不离开键盘的感觉很好。

    简明易懂的Git教程

    是没有什么大问题,但是遇到一个偷懒的问题。

    用终端打开txt文档,怎么能直接编辑呢。

    Mac OS X Terminal 101:终端使用初级教程
    找到一段:

    vi

    代表“visual”(视觉的),然而这个名称相当具有讽刺意味:vi可能是可视化效果最差的文本编辑器了。然而,vi 是 command line 中最常见的文本编辑器。用vi打开文本文件,只需要输入vi后接文件路径即可。Mac OS X 还提供了nano,一个更加现代的文本编辑器。它也更加方便,例如在底部包含了一个作弊小条(=_=),上面有常用的快捷键列表(你就不用背下来它们了)。然而,vi却有时是默认的文本编辑器,所以掌握vi是很有用的。

    和less命令类似,vi命令会占用整个 Terminal 空间来显示文件内容。打开后,在“command模式”,vi 会等你输入一些预定义字符来告诉 vi 你想做什么。你也可以使用键盘上的箭头键单纯地浏览文件。你想编辑时,按A开始(会进入编辑模式)。文字会插入到光标处。如果你想保存,需要先退出编辑模式进入 command 模式。方法是按下esc键。回到 command 模式后,按住shift同时按两次Z来保存并退出。如果你不想保存,在 command 模式输入:quit!并按enter return直接退出。

    用了发现无法用esc退出啊!

    解决:注意观察一下底部的状态,esc之后就返回正常状态了。关于vim的一些资料参见另外一篇文章VIM学习(一)基础按键

    好了继续学git。

    ssh key错误问题

    用id_rsa.pub里的内容复制过去

    Git学习小结

    要关联一个远程库,使用命令

    git remote add origin git@server-name:path/repo-name.git;
    

    关联后,使用命令

    git push -u origin master
    

    第一次推送master分支的所有内容;

    添加远程库

    要克隆一个仓库,首先必须知道仓库的地址,然后使用

    git clone
    

    命令克隆。

    Git支持多种协议,包括https,但通过ssh支持的原生git协议速度最快。

    关于一直迷惑的分支

    分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。

    现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。

    其他版本控制系统如SVN等都有分支管理,但是用过之后你会发现,这些版本控制系统创建和切换分支比蜗牛还慢,简直让人无法忍受,结果分支功能成了摆设,大家都不去用。

    但Git的分支是与众不同的,无论创建、切换和删除分支,Git在1秒钟之内就能完成!无论你的版本库是1个文件还是1万个文件。

    Git鼓励大量使用分支:

    查看分支:git branch

    创建分支:git branch name

    切换分支:git checkout name

    创建+切换分支:git checkout -b name

    合并某分支到当前分支:git merge name

    删除分支:git branch -d name

    当Git无法自动合并分支时,就必须首先解决冲突。解决冲突后,再提交,合并完成。

    用git log --graph命令可以看到分支合并图。

    $ git log --graph --pretty=oneline --abbrev-commit
    

    分支策略

    在实际开发中,我们应该按照几个基本原则进行分支管理:

    首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;

    那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,比如1.0版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;

    你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。

    所以,团队合作的分支看起来就像这样:



    修复bug时,我们会通过创建新的bug分支进行修复,然后合并,最后删除;

    当手头工作没有完成时,先把工作现场git stash一下,然后去修复bug,修复后,再git stash pop,回到工作现场。

    相关文章

      网友评论

      本文标题: Git入门(一)概念配置和分支

      本文链接:https://www.haomeiwen.com/subject/aevltttx.html