• git 学习心得


     白山头 白山头讲IC

    这两天突然对github非常感兴趣。因为想弄个博客放些资料和文章上去。于是趁华为云搞活动,以超便宜的价格租了个ECS。

    网页产生用的是hexo,写作完全用markdown的方式,这样也就不用在排版上花时间了。

    而数据的更新是用过git的方式。

    网上关于git入门的书籍很多,下载了一本《github入门与实践》,作者是日本大塚弘记。用了一晚上的时间,翻阅了前四章。感觉就是后悔啊—后悔没早点学git,可以少走不少弯路。

    目前,在公司基本是流程,项目一把抓。copy虽然简单快捷。但是随着项目的增多,或者同一个项目,又有多个try run的版本。flow中的bug改了之后,很有可能又因为copy的不是最新的,或者是在一个try run版本改了,在另外的try run版本又需要进行同样的动作,无形中进行了很多重复劳动。

    通过简单的实操,初步掌握了git的使用方法。

    用git进行流程管理

    这里,回忆一下git的基本操作,同时考虑一下我在项目中将怎么使用它。

    首先,建立一个空的仓库。

    假设目录为 /home/repo/flow

    cd /home/repo/flow
    git init --bare

    这里面的—bare是一定不能省的。否则,建立的repository(仓库)就只能clone,而不能在clone的repository进行。这样也就违反我的初衷,因为我需要对不同的项目建立不同的子仓库的修改,都要能够push到这个总的仓库中来。

    这里假设有两个项目需要同时进行, projectA, projectB。

    对于项目A, 我们将环境通过clone的方式copy到本地。
    git clone /home/repo/flow ProjectA

    对于项目B, 我们将环境通过clone的方式copy到本地。
    git clone /home/repo/flow ProjectB

    现在ProjectA & ProjectB就有了我们所需要的的环境,包括目录结构,各种脚本。

    现在,在ProjectA中,比如我们修改了某个文件,比如fileB,那么我只需要commit这一个文件的修改。

    git edit fileB
    git commit -m "message"
    git push

    那么在projectB中,就需要git pull, 把仓库中的更新更改到本地。

    由于项目总有很多结果文件,log文件,这些文件就不要add了。保持仓库的干净。

    另外,由于存在不同的process,metal stack的配置,我们可以对仓库创建不同的分支。

    对不同配置的项目,就可以clone不同的分支。

    如果一次修改导致错误,可以回溯到之前的任意时间点和分支。

    最后,对于不同的分支,还可以进行merge。在merge的时候,就需要认真的比对。对于这些不同的配置,完全可以通过swich语句或者if else语句进行merge。

    基本操作

    • git init —- 初始化仓库

    • git status —- 查看仓库状态

    • git add —- 向暂存区中添加文件

    • git commit —- 保存仓库的历史记录

    • git log —- 查看提交日志

    • git diff —- 查看更改前后的差别

    分支操作

    • git branch —- 显示分支一览表

    • git checkout -b —- 创建、切换分支

    • git merge —- 合并分支

    更改提交的操作

    • git reset —- 回溯历史版本

    • git commit —amend —- 修改提交信息

    • git rebase -i —- 压缩历史

    推送至远程仓库

    • git remote add —- 添加远程仓库

    • git push — 推送

    从远程仓库获取

    • git clone — 获取远程仓库

    • git pull —- 获取最新的远程仓库分支

  • 相关阅读:
    WebApi 生成接口文档
    MVC POST 嵌套格式的数据到Controller
    使用ABP框架的项目找不到system.web.http的解决办法
    SQLServer使用XML拆分以逗号分隔的字符串
    webapi使用swagger出现“Cannot read property 'parameters' of null”
    部署到IIS后出现ORA-12560的解决办法
    【ORACLE】“System.Exception: System.Data.OracleClient 需要 Oracle 客户端软件 version 8.1.7 或更高版本。”解决办法
    Go安装和简单配置开发环境
    怎么安装Jupyter Notebook主题皮肤并设置教程
    如何修改Anaconda中Jupyter Notebook默认工作路径(保存文件路径)
  • 原文地址:https://www.cnblogs.com/lelin/p/12699000.html
Copyright © 2020-2023  润新知