zoukankan      html  css  js  c++  java
  • git学习

    公司项目涉及到git的使用,所以抽时间看了下git相关命令,其实也有不足和错误,后期实践过程中慢慢修改:

    git提交的注意点:

     
    1,不同类别的修改 (如:Bug修复和功能添加) 要尽量分开提交,以方便以后从历史记录里查找特定的修改内容。
     

    2,查看其他人提交的修改内容或自己的历史记录的时候,提交信息是需要用到的重要资料。所以请用心填写修改内容的提交信息,以方便别人理解。

    以下是Git的标准注解:

    第1行:提交修改内容的摘要
    第2行:空行
    第3行以后:修改的理由

    请以这种格式填写提交信息。

     

    工作树,索引

    目录被称为工作树

    工作树和索引

     

    git push 将代码提交到远程服务器

    推送

    git clone 拉取远程服务器端代码;

    git pull 更新远程git上的代码到本地,相当于更新代码;

     

    合并修改记录:

    合并 例1

    マージ 例2

    手动解决合并过程中出现的冲突问题:

    冲突发生的例子

    上方为本地代码

    =================

    远程git上的代码

    处理冲突:

    競合の解決の例

     


    git高级

     

    分支的概念:

    一般工作中分主分支和个人分支,通常通过fork来建立自己的分支,并在这个分支中进行修改操作,然后通过merge合并到主分支中去。

    master分支即原始的root分支,为最初提交代码时,git创建的分支。

    分支的运用:

    merge分支和topic分支

    Merge分支是为了可以随时发布release而创建的分支,它还能作为Topic分支的源分支使用。

    Topic分支是为了开发新功能或修复Bug等任务而建立的分支。

    特性分支的图示

     

    蓝色和褐色部位为Topic分支。

    分支的切换

    分支的切换

    HEAD指向的是现在使用中的分支的最后一次更新

     

    提交时使用~(tilde)和^(caret)就可以指定某个提交的相对位置。最常用的就是相对于HEAD的位置。HEAD后面加上~(tilde)可以指定HEAD之前的提交记录。合并分支会有多个根节点,您可以用^(caret) 来指定使用哪个为根节点。

    stash

     

    还未提交的修改内容以及新添加的文件,留在索引区域或工作树的情况下切换到其他的分支时,修改内容会从原来的分支移动到目标分支。

    但是如果在checkout的目标分支中相同的文件也有修改,checkout会失败的。这时要么先提交修改内容,要么用stash暂时保存修改内容后再checkout。

    stash是临时保存文件修改内容的区域。stash可以暂时保存工作树和索引里还没提交的修改内容,您可以事后再取出暂存的修改,应用到原先的分支或其他的分支上。

    stash

    分支的合并:

    merge:

    建立分支:

    branch

    branchname-->分支名称

     

    $ git branch <branchname>

    不指定参数直接执行branch命令的话,可以显示分支列表:

     前面有*的就是现在的分支。

     

    $ git branch
      issue1
    * master

    切换分支:

     

    $ git checkout <branch>

    切换到issue1分支:

     

    $ git checkout issue1
    Switched to branch 'issue1'

    创建分支并切换分支:

     

    $ git checkout -b <branch>

     

    合并分支:

     

    $ git merge <commit>

     

    删除分支:

    $ git branch -d <分支名称>
    $ git branch -d issue1
    Deleted branch issue1 (was b2b23c4).

    并行操作:
    创建issue2分支和issue3分支,并切换到issue2分支

    $ git branch issue2
    $ git branch issue3
    $ git checkout issue2
    Switched to branch 'issue2'
    $ git branch
    * issue2
      issue3
      master

    添加标签:

    $ git tag <标签名称>

    显示标签列表:

    $ git tag

    显示包含标签资料的历史记录:

    $ git log --decorate

    添加标注标签

    $ git tag -a <标签名称>

    示标签的列表和注解:

    $ git tag -n

    删除标签:

    $ git tag -d <要删除的标签>

    改写提交:

    $
    git add sample.txt
    $
    git commit --amend

    取消提交:

    $ git revert HEAD [master d47bb1d] Revert "添加pull的说明"
    
     1 files changed, 1 insertions(+), 2 deletions(-)

    删除master分支最近的提交:

    $ git reset --hard HEAD~~
    HEAD is now at 326fc9f 添加add的说明

    参考学习于:http://backlogtool.com/git-guide/cn/

  • 相关阅读:
    [原创]平面机器人的避障策略思考
    做个快乐的程序员
    [知识]双音多频(DTMF)信号
    osg 关于LOD
    (3)vtkMapper
    关于坐标系,关于矩阵及线性相关和无关的关系
    osg找不到插件的解决办法
    逆风飞扬,吴仁宏
    整合qt设计师和vs2008出了点问题,记下来
    关于NodeVisitor访问者模式
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/bb5fc8aba2bf87eb38204f19ecc5be8f.html
Copyright © 2011-2022 走看看