图片描述

git常用命令

git 分支常用名称

  • 功能(feature)分支
  • 预发布(release)分支
  • 修补bug(fixbug)分支

git常用操作


  • 修改文件,都暂时保存到缓存区,在缓存区 切换任何branch(分支)都是不管用的,都会显示。

忽略已上传的文件

git update-index --assume-unchanged <文件名> 忽略已经上传到远程仓库的文件(比如: 配置文件, 每个人可能不一样 但需要格式一致)

git pull

git pull <远程主机名> <远程分支名>:<本地分支名>

git checkout 切换分支

git checkout -b 新建分支名 在当前分支下创建自分支 并切换到当前分支
git checkout 分支名 切换分支
git branch -d 分支名 删除分支(分支上没有提交修改)
git branch -D 分支名 强行删除分支(分支上提交了修改)

git diff 查看变更内容

git diff 当前工作区与暂停区的差异
git diff --cached [<path>...] 比较暂存区与最新本地版本库(本地库中最近一次commit的内容)
git diff <分支1> <分支2>
git diff 工作目录和暂存区之间的差异
git diff HEAD 显示工作版本和HEAD的差别
git diff 分支1 分支2 显示两个分支之间的差异
git diff HEAD^ HEAD 比较上次提交commit和上上次提交
git diff dev(本地远程分支dev) origin/dev(远程分支dev) 本地分支(dev)与远程分支(dev)比较

git merge 合并分支

git merge --no-ff 不使用fast merge (有记录)

怎么将当前分支的提交push到master分支

如题,直接在develop分支上改了一个bug(没有严格按照git flow),请问怎么将develop分支上这个更改提交到master分支去?

用到的知识点:$ git pull <远程库名> <远程分支名>:<本地分支名>

方法:

  • 取回远程库中的develop分支,与本地的develop分支进行merge,要写成:
    git pull origin dev:dev

  • 如果是要与本地当前分支merge,则冒号后面的<本地分支名>可以不写。
    git pull origin dev

其实,git pull 命令等同于先做了git fetch ,再做了git merge。即:

git fetch origin dev 拉取远程dev分支 更新本地远程分支dev
git checkout dev  
git merge origin/dev

常见问题解决方法


1.添加远程版本库出现的问题

问题:
    fatal: remote origin already exists.
解决方法:
    //移除远程git仓库
    git remote rm origin
    //添加地址
    git remote add origin giturl

2.Git在最新2.9.2,合并两个没有共同祖先的分支出现的问题

问题: 
    报错: `fatal: refusing to merge unrelated histories`
解决方法:
    git merge --allow-unrelated-histories origin/master

注意:

  • Git 从 2.9.0 版本开始,预设行为不允许合并没有共同祖先的分支,需要加上 --allow-unrelated-histories 进行 pull 操作才不会出现此类错误信息。
    不建议使用git pull,喜欢自己merge,以便万一自动merge出错的时候可以解决冲突

3. git commit 提交失败,错误信息如下:

问题: 
    git commit 报错 husky > npm run -s precommit (node v6.9.4) fatal: Not a git repository: '.git'

解决方法:
    cp .git/hooks/pre-commit /tmp/pre-commit 
    tr -d ‘\r’ < /tmp/pre-commit > .git/hooks/pre-commit

    # 如果上述命令有问题 执行如下命令
    cp .git/hooks/prepare-commit-msg /tmp/ 
    tr -d ‘\r’ < /tmp/prepare-commit-msg > .git/hooks/prepare-commit-msg

    cp .git/hooks/commit-msg /tmp/ 
    tr -d ‘\r’ < /tmp/commit-msg > .git/hooks/commit-msg

4. 你自己项目修改还未提交时,执行 git pull 或 git merge, 提示: Error your local changes to the following files would be overwriten by merge.

解决方法:
    方法1: 如果你想保留刚才本地修改的代码,并把git服务器上的代码pull到本地(本地刚才修改的代码将会被暂时封存起来)
        1. git stash  
        2. git pull origin master  
        3. git stash pop  

    方法2: 如果你想完全地覆盖本地的代码,只保留服务器端代码,则直接回退到上一个版本,再进行pull
        1. git reset --hard  
        2. git pull origin master  

初次使用git 提交项目到远程仓库


  1. git init 本地仓库初始化
  2. git remote add origin 远程仓库地址
  3. git config --global user.email "scgao94@gmail.com" 设置邮箱
  4. git config --global user.name "DemonGao" 设置昵称
  5. 创建ssh key 并且授权 具体操作点击此链接