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 提交项目到远程仓库
- git init 本地仓库初始化
- git remote add origin 远程仓库地址
- git config --global user.email "scgao94@gmail.com" 设置邮箱
- git config --global user.name "DemonGao" 设置昵称
- 创建ssh key 并且授权 具体操作点击此链接