git 培训


代码管理中的分支管理

永久分支
临时分支

临时分支(辅助分支)是根据需要从master或develop产生的, 完成后就归到master或develop去并删除掉. 数量不限

我们使用git的好处和坏处

  1. SVN分支合并会遇到各种问题,包括额外的冲突和繁琐的操作 详情. 而git由于使用不同架构可以轻易的管理分支. git可以让你拥有多个本地分支, 他们可能是完全独立的. 而且建立,合并,切换和删除这些开发的支线只需要几秒钟的时间

git其它好处

缺点

使用git

  1. 安装
    sudo apt-get install git
    
  2. 配置
    编辑 ~/.gitconfig
    [user]
    	name = aa
    	email = aa@gmail.com
    [alias]
        co = checkout
        ci = commit -a
        st = status
        svnup = svn rebase --localtime
        svncommit = svn dcommit --localtime
        logweek = log --since=5.days
    [core]
    	excludesfile = ~/.gitignore
    
    user填入你的名字和邮箱,alias里可以自定义缩写
    编辑 ~/.gitignore 设置要忽略的文件和文件夹
    # 此为注释 将被 Git 忽略
    #*.a       # 忽略所有 .a 结尾的文件
    #!lib.a    # 但 lib.a 除外
    #/abc     # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/abc
    #build/    # 忽略 build/ 目录下的所有文件
    #doc/*.txt # 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
    *.[oa]    # 忽略.o和.a文件
    *~
    *.swp
    .libs/
    *.so
    *.lo
    *.la
    *.pyc
    
    tags
    tmp/
    bin/
    obj/
    *.pro.user
    *.apk
    gen/
    libs/
    default.properties
    .svn/
    .DS_Store
    
  3. 从服务器克隆一个工程到本地
    git clone git@192.168.1.15:/opt/git/project.git
    
  4. 添加文件
    git add path/to/file    #添加一个文件或文件夹
    git add .               #添加当前文件夹下所有文件,含子文件夹,忽略设置为忽略的
    git add -f path/to/file #强行添加设置为忽略的文件
    
  5. 提交所有更改到本地库
    git ci -m"日志信息"
    
  6. 一些基本操作,详细的看 git help 以及 git help {command} {command}可以是log diff等等
    git log     #提交记录,记录里commit后面的hash值是此次提交的标记,假设为12ab11...
    git show 12ab file1  #比较12ab的file1的内容修改
    git co 12ab     #切换到此次提交,要co回到最新就co本分支名字就行了 类似svn co
    git st              #查看当前状态 类似svn st
    git diff file1      #查看file1已作更改 类似svn diff
    git diff 112a ac32  #比较112a和ac32的差别
    git rm file1        #删除file1以及取消对其的控制 类似svndelete
    git reset --hard    #取消当前所做更改;类似svn revert
    
  7. 与版本服务器交互
    git push    #上传当前分支到默认的服务器的默认分支 (clone的时候会自动设置
    git pull    #从默认的服务器的默认分支下载并合并
    git push orign dev      #上传到服务器的dev分支
    git pull origin fix:fix #下载服务器的fix分支为本地的fix分支 (会自动创建
    git branch -r       #查看服务器的分支状况
    
  8. 分支操作
    git co -b newf  #从当前分支创建叫newf的新分支
    git co dev      #切换到dev分支
    git merge newf  #合并newf分支的更改到当前分支
    git branch -d newf  #删除newf分支
    git branch          #查看本地分支状况
    git diff dev..newf  #比较dev分支和newf分支的差别
    
  9. 一个示例
    git clone git@192.168.1.15:/opt/git/project.git #首次下载
    git co dev          #可能会默认为dev分支,就不需要这个操作了
    git co -b newf      #建立一个新功能分支
    ... 作修改操作,添加文件修改文件什么的,穿插n次 git ci -m"xx"
    git ci -m"xxxxxx"   #提交到本地库, 这个新功能差不多没有问题告一段落就合并到dev中
    git co dev          #切换回dev分支
    git merge newf      #合并newf分支的修改到dev中
    git branch -d newf  #删除newf分支
    git pull origin dev #从服务器更新dev分支
    git push origin dev #提交到dev
    

推荐的教程

Git Magic: http://www-cs-students.stanford.edu/~blynn/gitmagic/intl/zh_tw/ 不过这个教程内容比较多 也可以自己搜简要些的教程

参考

http://roclinux.cn/?p=2129