1. git配置用户名与邮箱

      1. git config --list //查看git所有配置
      2. git config --global user.name "curry"//配置用户名
      3. git config --global user.email "dontegrand@gmail.com"//配置邮箱
    2. git新建分支,并发布到线上

      1. git checkout -b curry //新建curry分支
      2. git push --set-upstream origin curry // 分布到远程
    3. git将本地分支与远程分支相关联。

      1. git branch --set-upstream-to=origin/remote_branch your_branch
    4. git新建远程分支

      1. git remote add origin https://giturl
      2. git push -u origin master //初次提交并关联远程master
    5. git根据远程分支在本地新建分支

      1. git checkout -b dev origin/dev // 根据远程dev,在本地新建dev
    6. git删除分支

      1. git branch -d curry // 删除curry本地分支
      2. git push origin --delete curry // 删除远程curry分支
    7. 查看分支

      git branch //查看本地分支
      git branch -a //查看远程分支
      git branch -D curry //删除master分支
      git push origin --delete curry //删除远程curry分支
      
    8. 强拉线上dev来更新本地dev

      git fetch -all
      git reset --hard origin/dev
      
    9. 强推到线上

      git push -f
      
    10. git 查看关联仓库

      git remote //查看关联仓库的名称
      git remote -v //查看关联仓库的详情
      
    11. git 修改ssh协议为http协议

      git remote set-url origin <newURL>
      
    12. git修改账号密码后报错:git fatal: Authentication failed for

      git config --system --unset credential.helper
      
    13. 将一个分支上的提交合并到另外一个分支

      分支A上:git reflog 查看commitid
      git checkout b 切换到b分支上
      git cherry-pick commitid 合并commitid的提交到分支b上
      
    14. 新建本地分支,并合并dev分支

      git checkout -b local //新建本地local分支并切到local分支
      git merge dev //合并dev分支
      
    15. 合并某个分支上的文件或文件夹并;回退某个文件(撤回add的文件)

      git checkout app.vue 撤回app.vue这个文件
      git checkout --patch dev ./src/views/applicaion // 合并dev分支上的applicaion文件夹
      
    16. 修复紧急bug时,隐藏开发分支上的内容,从master分支创建hotfix分支,修完发布,回到dev继续开发。

      // 当前是dev分支,还没开发完
      git stash // 隐藏开发分支内容 //或者 git stash save '注释' 方式。
      git checkout master
      git pull
      git checkout -b hotfix //修完提交
      git checkout dev //回到dev
      git stash list //查看保存的列表
      git stash apply // 显示工作区继续开发
      git stash drop // 删除隐藏的工作区
      
    17. 功能分支b2b,未开发完不想提交,需要切到dev上去修bug。

      git stash //隐藏b2b分支上开发的内容
      git stash list // 可查看stash的id
      git checkout dev //切到dev上搞事情
      git checkout b2b 
      git stash pop //直接显示stash的内容并删除掉了stash list上的记录。
      
    18. 两人在同一分支开发,每次push前,git pull 会在本地造成一次merge into 的提交记录

      git pull --rebase // git pull 的同时,消除merge into的提交记录,美化提交记录。
      
    19. 子仓库相关操作

      git add <http://xxx/xxx.git> </src/相对路径> // 在相对路径下新增一个子仓库
      git submodule update --init // 初始化子仓库
      git submodule update --remote // 拉取子仓库
      git submodule foreach checkout test // 子仓库都切到test分支