zoukankan      html  css  js  c++  java
  • 2015-09-27 git学习

    创建


    初始化

    1. git init Initialized empty Git repository in <file>

    关联

    1. git remote add origin <git@server-name:path/repo-name.git>

    克隆

    1. git clone <git@server-name:path/repo-name.git>

    从已有远程库中拷贝

    查看


    状态日志

    1. git status

    提交内容日志

    1. git log

    分支合并日志

    1. git log --graph

    操作步骤日志

    1. git reflog

    差异日志

    1. git diff

    远程库信息

    1. git remote -v

    提交&撤销


    提交
    提交代码更改分两个阶段:

    1. 从工作目录,提交到stage;
    2. 从stage提交到master;
    • 从工作目录提交到stage

      • 新增
        1. 单个文件:git add <file>
        2. 多个文件:git add -A
      • 删除
        1. 单个文件:git rm <file>
        2. 多个文件:git rm -A

        只提交到stage,而没有提交到master,是不会自动同步到master的

    • 从stage提交到master

      1. git commit

    退回
    退回也是要分两步:

    1. 从master退回到stage;
    2. 从stage退回到工作目录;
    • 对于还没有提交到stage的
      1. 单个文件:git checkout --<file>
      2. 多个文件:git checkout master/develop

      退回一步取stage中的文件状态,覆盖掉工作目录中文件的状态,跟master完全没关系。

    • 对于已经到达stage的
      1. 单个文件:git reset HEAD file
      2. 多个文件:git reset HEAD^

      把state中的文件状态用master中的覆盖掉,这样就把stage中修改用master的状态覆盖掉了,完全跟工作目录没关系

    更新


    第一次推送

    1. git push -u origin master

    推送最新修改

    1. git push origin master

    分支


    查看分支

    1. git branch

    创建分支

    1. git branch <name>

    切换分支

    1. git checkout <name>

    创建+切换分支

    1. git checkout -b <name>

    合并某分支到当前分支

    1. git merge <name>

    合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息

    1. git merge --no-ff -m "merge with no-ff" <name>

    因为本次合并要创建一个新的commit,所以加上-m参数,把commit描述写进去

    推送分支

    1. git push origin <master>

    git rebase与git marge的差异


    将当前分支更新为最新的目标分支分支

    1. git rebase <origin>

    应用修改提交

    1. git rebaes --continue

    终止流程

    1. git rebaes --abort

    跳过此版本

    丢弃本地修改,慎用

    1. git rebaes --skip

    删除分支

    1. git branch -d <name>

    bug分支

    储藏

    1. git stash

    将目前当所有修改用油纸包起来,快速地将工作环境恢复到上一个commit时的状态
    并不是不想提交,而是工作进行到一半,线上缺陷来了,没法提交

    • 线上缺陷储藏步骤
      1. git stash //储藏现有工作分支(一般为develop)
      2. git checkout <master> //切换至master分支
      3. git checkout -b <issus-911> //在master分支上创建issus-911分支
      4. git add <fix.java> //添加缺陷修改文件
      5. git commit -m <"fix bug 911"> //提交缺陷修改文件
      6. git checkout <master> //切换回master分支
      7. git merge --no-ff <issus-911> //将issus-911分支合并至master
      8. git checkout <develop> //切换至develop分支
      9. git merge --no-ff <issus-911> //将issus-911分支合并至develop

    查看储藏

    1. git stash list

    恢复储藏

    1. git stash apply <stash@{0}>

    删除储藏

    1. git stash drop

    恢复并删除储藏

    1. git stash pop

    feature分支

    • 新feature开发步骤
      1. git checkout -b <new feature 119> //在develop分支上创建issus-911分支
      2. git add <feature.java> //添加新文件
      3. git commit -m <"new feature 119"> //提交新文件
      4. git checkout <develop> //切换至develop分支
      5. git merge --no-ff <new feature 119> //将new feature119分支合并至develop
      6. git branck -d <new feature 119> //将new feature119

    标签

    查看标签

    1. git tag

    创建标签

    1. git tag <v1.0>

    别名

    命令嫌太长了,可以取个别名

    1. git config --global alias.st status
    2. git config --global alias.co checkout
    3. git config --global alias.ci commit
    4. git config --global alias.br branch




  • 相关阅读:
    python删除hbase一整列数据
    selenium基本操作
    python去除html标签及标签里面的内容
    Ambari-server 启动错误
    scala 命名规范
    HDFS坏块修复
    Nodejs+MySql+Echart(html模板渲染)
    Ambari openssl错误
    设置mysql 远程连接
    JMS 简介笔记
  • 原文地址:https://www.cnblogs.com/snifferhu/p/4842419.html
Copyright © 2011-2022 走看看