• git使用图解


    使用前

    1. 安装git
    2. 配置name 和 email
    git config --global user.name "Your Name"
    git config --global user.email "email@example.com"

    使用中

    本地单用户工作流

    1. 初始Git管理仓库
    git init
    1. 添加文件到Git仓库
    git add readme.txt
    1. 提交文件到Git仓库
    git commit -m "upload readme file"

    远程单用户工作流

    1. 克隆一个远端Git版本库 or 关联本地版本库
    git clone https://github.com/cizel/soft_backup
    git remote add origin git@github.com:cizel/soft_backup.git
    1. 添加文件到Git仓库
    git add readme.txt
    1. 提交文件到Git仓库
    git commit -m "upload readme file"
    1. 上传到远端Git仓库
    git push origin master

    多用户分支使用策略

    1. 基本语法

      查看分支: git branch

      创建分支: git branch <name>

      切换分支: git checkout <name>

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

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

      删除分支: git branch -d <name>

    2. 分支的使用

    Git创建Develop分支的命令:

    git checkout -b develop master

    将Develop分支发布到Master分支的命令

      # 切换到Master分支
      git checkout master
      # 对Develop分支进行合并
      git merge --no-ff develop

    tip: --no-ff

    未使用 --no-ff 使用快速合并的策略 

    使用 --no-ff 会执行正常合并,在Master分支上生成一个新节点。为了保证版本演进的清晰,我们希望采用这种做法。 

    1. 分支的管理策略

    一、主分支Master

    首先,代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。

    二、开发分支Develop

    主分支只用来分布重大版本,日常开发应该在另一条分支上完成。我们把开发用的分支,叫做Develop。

    三、 功能分支

    第一种是功能分支,它是为了开发某种特定功能,从Develop分支上面分出来的。开发完成后,要再并入Develop。

    四、预发布分支

    预发布分支是从Develop分支上面分出来的,预发布结束以后,必须合并进Develop和Master分支。它的命名,可以采用release-*的形式。

    五、修补bug分支修补bug分支是从Master分支上面分出来的。修补结束以后,再合并进Master和Develop分支。它的命名,可以采用fixbug-*的形式。 

    遇到问题

    参看与对比

    # 告诉你有文件被修改过
    git status
    #可以查看修改内容
    git diff

    版本前进与后退

    # 查看提交历史,以便确定要回退到哪个版本
    git log
    # 查看命令历史,以便确定要回到未来的哪个版本
    git reflog

    修改版本

    git reset --hard commit_id

    撤销commit

    git reset --hard commit_id
    # 如果使用远端,git push 的情况
    git push origin HEAD --force

    git revert和git reset的区别

    1. git revert是用一次新的commit来回滚之前的commit,git reset是直接删除指定的commit。
    2. 在回滚这一操作上看,效果差不多。但是在日后继续merge以前的老版本时有区别。因为git revert是用一次逆向的commit“中和”之前的提交,因此日后合并老的branch时,导致这部分改变不会再次出现,但是git reset是之间把某些commit在某个branch上删除,因而和老的branch再次merge时,这些被回滚的commit应该还会被引入。
    3. git reset 是把HEAD向后移动了一下,而git revert是HEAD继续前进,只是新的commit的内容和要revert的内容正好相反,能够抵消要被revert的内容。

    git fetch和git pull的区别

    1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge
    2. git pull:相当于是从远程获取最新版本并merge到本地,git pull相当于git fetch + git merge
  • 相关阅读:
    python地图投影转换
    python 矢量数据转栅格数据
    读CSV文件并写arcgis shp文件
    python 读取矢量文件
    python 读hdf4文件,再转写成一个tif文件
    python gdal 写GeoTiff文件
    python gdal 读取栅格数据
    linux下在用python向文件写入数据时' '不起作用
    【FFT&NTT 总结】
    -【网络流总结】
  • 原文地址:https://www.cnblogs.com/axl234/p/5659922.html
Copyright © 2020-2023  润新知