美文网首页
每次吃一点Android_Gitの四

每次吃一点Android_Gitの四

作者: 耑意儿 | 来源:发表于2017-03-08 19:03 被阅读18次
    目录:
    1、Git分支再述
    2、Git标签管理
    

    进击的小仙

    穿越:【目录】每次吃一点Android_Git版本管理

    参考资料:Git教程 - 廖雪峰的官方网站

    1. Git分支再述

    1.1. Git之stash贮藏功能(Bug分支)

    贮藏功能主要用在优先修复bug时,贮藏当前工作区的修改内容,等到bug修复后再恢复。
    假定项目一期上线后,lisa和Jimbo便投入了二期的开发,在dev上做开发。

    • step1:lisa在自己的分支上作README.md文档的修改,二期刚开始时候工作区的README.md内容为:
    The Android Project for Learning Android MVP mode
    lisa status test
    

    lisa修改后未提交的工作区内容为:

    The Android Project for Learning Android MVP mode
    
    • step2:一期临时出现一个bug交给lisa要立刻修改,lisa准备新建一个名为bug001的分支并在上面修改Bug.
    git checkout -b bug001
    vim README.md
    git add README.md
    git commit -m "resolved bug001"
    git checkout master
    git merge --no-ff -m "resolved bug001" bug001
    git push origin master
    git branch -d bug001
    
    • 提交后准备回去lisa分支继续未完成的工作结果发现原先在工作区所做的修改没有了,README.md的内容又重置成了原始内容:
    The Android Project for Learning Android MVP mode
    lisa status test
    

    也就是说当bug001分支执行了commit操作后,原本在lisa分支上工作区的工作被清掉了。这里就要在离开lisa分支之前储存在工作区上的修改:

    git stash 
    
    Paste_Image.png
    然后放心去bug001修改Bug。修改完后回到lisa分支恢复工作区修改:
    git stash apply
    git stash drop
    # 或者
    git stash pop
    # 或者恢复到指定的stash
    git stash apply stash@{0}
    

    1.2. Git删除分支(feature分支)

    前面说过删除分支用:

    git branch -d bran_name
    

    但是如果该分支新建后都还未合并,删除时会抱错误:

    Paste_Image.png

    他提示要换成下面的指令:

    git branch -D bran_name
    

    那么什么时候会出现这种情况呢?
    一个项目通常可以分成多个功能模块,最好分出多个feature分支来独立开发。这样假设一个新功能在开发过程中临时被产品经理或客户干掉,这时候就会好办些。

    1.3. 远程分支

    本地分支如果没有提交到远程,远程是不会有该分支的。
    查看所有分支(包含本地和远程的):

    git branch -a
    
    Paste_Image.png

    红色以remotes开头的是远程的分支,可以看到lisa分支在远程中不存在。
    将本地分支提交到远程:

    git push origin lisa
    
    Paste_Image.png

    将远程分支获取到本地对应的分支:

    git checkout -b dev origin/dev
    # 或者 
    git fetch origin dev_originname:dev_localname
    

    将远程的分支与本地分支关联:

    git branch --set-upstream  branch_name origin/branch_name
    

    将本地分支内容提交到远程分支:

    git push origin branch_name
    

    提交失败可能是产生冲突了,先将远程分支内容更新下来:

    git pull origin branch_name
    

    对比两个分支的差异:

    git log dev...master
    

    对比本地分支与远程分支差异

    git diff dev origin/dev
    

    2. Git标签管理

    每次修改提交时都会生成一个commit,那么经年累月,就会产生很多的commit,我们需要对一些节点性的提交做一下标注,比如说某次的提交是某个重要的上线版本,这时候就可以用到tag打个标签。

    2.1. 添加标签:

    git tag v1.0
    # 对指定的commitid打标签
    git tag v1.0 0cfea9
    # 对指定的commitid打标签,并注释
    git tag -a v1.0 -m "first released" 0cfea9
    

    2.2. 查看标签:

    git tag
    

    2.3. 查看某个标签下的提交信息:

    git show v1.0
    

    2.4. 删除标签

    git tag -d v1.0
    

    2.5. 推送标签到远程

    git push origin tagname
    # 一次性将所有tag都提交上去
    git push origin --tags
    

    2.6. 删除远程标签

    # 先删除本地
    git tag -d v1.0
    # 再删除远程
    git push origin  :refs/tags/v1.0
    

    相关文章

      网友评论

          本文标题:每次吃一点Android_Gitの四

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