安装与初始化
- git --version 查看安装的git版本
- git config --global user.name 'xxx' 配置用户名
- git config --global user.email xxx 配置用户邮箱 注:参数global为配置到电脑用户,system为配置到电脑系统
- git config --list 查看已有配置信息
- git config --global --unset xxx 删除某一项配置信息
git底层命令
- 基本的Linux命令
clear: 清屏
echo'xxx': 向控制台输出xxx
ll: 列出当前目录下的子文件和子文件夹
find 目录名: 查找对应文件夹下的所有文件和文件夹
find 目录名 -type f: 查找对应目录下的文件
rm 文件名: 删除文件
mv 原文件名 新文件名: 重命名文件
cat 文件url: 查看文件类容
git高层命令
技巧
- git config --global alias.别名 命令 给git命令起别名
记录每次更新到仓库
- git add 文件名或路径 跟踪文件并提交到暂存区
- git status [文件名] 不加文件名查看当前工作区的各文件的状态、加文件名查看当前文件状态
- git status -s [文件名] 显示的状态更简洁
- git diff [文件名] 不加参数:查看尚未暂存的文件更新了哪些部分 加参数:查看指定文件。 此命令比较的是工作目录中当前文件和暂存区域快照之间的差异
- git diff --staged [文件名] 这条命令将比对已暂存文件与最后一次提交的文件差异
- git commit -m'xxx' 将暂存区的文件提交到版本库中,xxx表示这次提交的注释
- git commit -a -m'xxx' Git 自动把所有已经跟踪过的文件暂存起来一并提交,从而跳过 git add 步骤
- git rm [文件名] 删除工作目录中对应的文件,再将修改添加到暂存区
- git rm -f [文件名] 删除暂存区中的文件
- git rm -cached [文件名] 想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。换句话说,你想让文件保留在磁盘,但是并不想让 Git 继续跟踪。
- git mv name newname 更改文件名字 实际上做了三步操作: mv name newname git rm name git add newname
查看提交记录
- git log 查看提交历史
- git log --oneline 查看提交历史
- git log -p -2 显示每次提交所引入的差异,你也可以限制显示的日志条目数量,例如使用 -2 选项来只显示最近的两次提交
- git log --stat 查看每次提交的简略统计信息
撤销操作
- git reset HEAD 文件名 撤销对暂存区中文件的修改
- git checkout -- 文件名 撤回对工作目录中文件的修改
- git commit --amend 修改上一次提交到版本库的提交对象的注释
打标签
- git tag 列出已有标签
- git tag -a v0.0 -m'version0.0' 创建附注标签
- git tag v0.0 创建轻量标签
- git show 标签名 查看标签信息和对应的提交信息
- git tag -a v1.2 9fceb02 在提交之后补上标签。 要在那个提交上打标签,你需要在命令的末尾指定提交的校验和
- git push origin --tags 共享标签,push到远程仓库是别人也能看见标签
- git tag -d 删除标签
git分支
- git branch 得到当前的所有分支
- git branch 名称 创建分支
- git log --decorate 查看各分支当前所指的对象
- git checkout 名称 切换到对应分支
- git checkout -b 名称 创建分支并切换过去
- 每次切换分支前使用git status检查一下
新建与合并
- 每一个需求都要切换到master分支再新建分支
- 合并分支时也要先切换到master分支
- git merge 名称 将指定分支合并到master上
- git branch -d 名称 删除分支,在需求上线后要删除开发需求时创建的分支
- git branch --merged 查看哪些分支已经合并到当前分支,未标*号的表示已经合并到当前分支,可以删掉
- git branch --no-merged 查看所有包含未合并工作的分支
远程分支
- git ls-remote 查看克隆的远程分支
- 假设你的网络里有一个在 git.ourcompany.com 的 Git 服务器。 如果你从这里克隆,Git 的 clone 命令会为你自动将其命名为origin,拉取它的所有数据, 创建一个指向它的master分支的指针,并且在本地将其命名为 origin/master。 Git 也会给你一个与 origin 的 master 分支在指向同一个地方的本地 master 分支,这样你就有工作的基础。
- 如果你在本地的 master 分支做了一些工作,在同一段时间内有其他人推送提交到 git.ourcompany.com 并且更新了它的 master 分支,这就是说你们的提交历史已走向不同的方向。即便这样,只要你保持不与 origin 服务器连接(并拉取数据),你的 origin/master 指针就不会移动。
- git fetch origin clone的仓库本地一般默认叫origin, 抓取本地没有的数据,并且更新本地数据库,移动origin/master 指针到更新之后的位置。
- git push origin serverfix 推送本地的 serverfix 分支来更新远程仓库上的 serverfix 分支
提交准则
- git diff --check 提交前检查是否包含空白错误
git存储
- git stash 当想要切换到其他分支但又不想提交本分支上还未暂存的内容时可是使用本命令将内容暂时存储到栈中
- git stash list 查看栈中的内容
- git stash apply 取出栈顶的内容
- git stash drop 名称 移除栈里面对应的内容