• Git学习笔记


    Git 的教程:

    一:git的基础操作--提交,发布

        创建一个本地版本库: git init
        添加一个文件: git add
        提交一个文件到本地版本库: git commit -m 描述信息
        查看目前文档的状态: git status
       在add前查看修改的内容: git diff 文件名
       查看提交的日志: git log
    查看命令的历史: git reflog

    二:git的版本控制

        git的当前版本是HEAD,回到前一个版本是: git reset --hard HEAD^
        git回到任意版本是: git reset --hard commit——id
        放弃未add的版本: git checkout -- file
       一种是readme.txt自修改后还没有被放到暂存区,现在,撤销修改就回到和版本库一模一样的状态;
      一种是readme.txt已经添加到暂存区后,又作了修改,现在,撤销修改就回到添加到暂存区后的状态
       场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。

       场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。

       场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库。
      查看远程库的信息: git remote -v

    删除: 如果在工作区删除了一个文件
     1. 如果你确定要删除,那使用 git rm file 从版本库中删除,并且commit
     2. 如果你是误删,则需要从版本库中恢复文件: git checkout -- file


    三:连接远程仓库:

     1. 生成密钥:ssh-keygen -t rsa -C "18500524969@qq.com",在用户目录下可以找到这个文件。
     2. 注册github账号,把密钥添加到gitHub
     3. 连接远程数据库
     1. 未创建本地仓库
        echo "# learngit" >> README.md
        git init
       git add README.md
       git commit -m "first commit"
       git remote add origin https://github.com/jiangerOne/learngit.git
       git push -u origin master
    2. 如果已经创建本地仓库
       git remote add origin https://github.com/jiangerOne/learngit.git
       git push -u origin master
    4. 从远程库克隆
      git clone git@github.com:jiangerOne/javaProject.git

    四:分支操作:

       1. 分支的基本操作: 某个分支的操作不会对其他分支的数据进行影响,如果要同步,则需要合并分支
         查看当前的分支: git branch
         创建一个新的分支: git branch dev
        切换到dev: git checkout dev
        git checkout -b dev = git branch+git checkout dev
        合并某分支到当前分支:git merge dev
        删除分支: git branch -d dev
      2. 分支冲突:
       当一个分支提交了改变的内容,另一个分支也提交了改变了相同行的内容时,分支合并会冲突。
        解决方案:首先解决冲突,可以使用git log --graph.
    3. 分支策略
        合并分支时,加上--no-ff参数就可以用普通模式合并,合并后的历史有分支,
        能看出来曾经做过合并,而fast forward合并就看不出来曾经做过合并。
       在实际开发中,我们应该按照几个基本原则进行分支管理:
         1. 首先,master分支应该是非常稳定的,也就是仅用来发布新版本,平时不能在上面干活;
         2. 那在哪干活呢?干活都在dev分支上,也就是说,dev分支是不稳定的,到某个时候,
           比如v10版本发布时,再把dev分支合并到master上,在master分支发布1.0版本;
        3. 你和你的小伙伴们每个人都在dev分支上干活,每个人都有自己的分支,时不时地往dev分支上合并就可以了。
       4.合并分支时,主分支不要提交,要合并
    4. 创建bug分支:
      1. 当你在dev上工作时,你突然发现一个bug,但是dev的工作还没有做完,你需要保存dev的环境
        跑到master创建bug分支,修复bug
         1. 保存dev的当时状态:git stash
         2. 切换到master分支上创建bug分支:
            git checkout master
            git checkout -b bug--01
       3. 修复完bug,合并bug分支,删除bug分支
          git merge bug--01
         git branch -d bug--01
    4. 回到dev,查看stash,删除stash,继续开始工作
         checkout dev
         git stash list
         git stash apply恢复
         git stash pop 恢复,删除
    5. 强行删除未合并的新分支: 开发一个新feature,最好新建一个分支;
         如果要丢弃一个没有被合并过的分支,可以通过git branch -D <name>强行删除。
    6. 多人合作:
       但是,并不是一定要把本地分支往远程推送,那么,哪些分支需要推送,哪些不需要呢?

       master分支是主分支,因此要时刻与远程同步;

       dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;

       bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;

       feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发。

    7. 多人合作分支:

    查看远程库信息,使用git remote -v;
    本地新建的分支如果不推送到远程,对其他人就是不可见的;

    从本地推送分支,使用git push origin branch-name,如果推送失败,先用git pull抓取远程的新提交;

    在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致;

    建立本地分支和远程分支的关联,使用git branch --set-upstream branch-name origin/branch-name;从远程抓取分支,使用git pull,如果有冲突,要先处理冲突。

    五:标签管理:

    1. 标签的主要作用是更好的标识版本
    2. 创建一个标签
    命令git tag <name>用于新建一个标签,默认为HEAD,也可以指定一个commit id;

    git tag -a <tagname> -m "blablabla..."可以指定标签信息;

    git tag -s <tagname> -m "blablabla..."可以用PGP签名标签;

    命令git tag可以查看所有标签。
    git show tag 可以查看tag的信息
    3. 删除一个标签:
    命令git push origin <tagname>可以推送一个本地标签;

    命令git push origin --tags可以推送全部未推送过的本地标签;

    命令git tag -d <tagname>可以删除一个本地标签;

    命令git push origin :refs/tags/<tagname>可以删除一个远程标签。

    六:自定义git

    上颜色
    git config --global color.ui true
    配置别名:
    git config --global alias.st status


  • 相关阅读:
    vue-fullcalendar插件
    iframe 父框架调用子框架的函数
    关于调试的一点感想
    hdfs 删除和新增节点
    hadoop yarn 实战错误汇总
    Ganglia 安装 No package 'ck' found
    storm on yarn(CDH5) 部署笔记
    spark on yarn 安装笔记
    storm on yarn安装时 提交到yarn失败 failed
    yarn storm spark
  • 原文地址:https://www.cnblogs.com/grasser/p/8483837.html
Copyright © 2020-2023  润新知