git.png

一、使用配置

1. 全局配置

# 配置用户名
git config --global user.name 'xxx'

# 配置邮箱
git config --global user.email 'xxx@xxx'

# 配置大小写敏感
git config core.ignorecase false

# git status等命令自动着色
git config --global color.ui true
git config --global color.status auto
git config --global color.diff auto
git config --global color.branch auto
git config --global color.interactive auto

2. 本地配置

在全局配置的基础上将 --global  改成 --local

二、创建版本库

1. 初始化本地仓库

git init

2. 拉取远程仓库

git clone '远程仓库 git 地址'

3. 关联远程仓库

git remote add origin '远程仓库 git 地址'

三、分支和标签

1. 显示当前分支

git branch

2. 显示全部分支

git branch -a

3. 本地分支改名

#当前分支
git branch -m new_branch

# 非当前分支
git branch -m origin_branch new_branch

4. 从当前分支创建新分支并检出

git checkout -b new_branch

# 完整版
git checkout -b current_branch new_branch

5. 检出已存在的分支

git checkout xxx

四、修改和提交

1. 暂存相关

# 暂存版本
git stash

# 查看所有暂存
git stash list

# 应用最后一次暂存
git stash pop

2. 添加文件

# 添加单个文件
git add xxx

# 添加所有
git add .

3. 提交

# 直接提交
git commit -m 'xxx'

# 合并上一次提交(用于反复修改)
git commit --amend -m 'xxx'

# 将add和commit合为一步
git commit -am 'xxx'

# 忽略 git commit 校验
git commit -n -m 'xxx'

五、查看提交历史

1. 显示提交日志

# 顺序打印提交记录
git log

# 格式显示历史提交信息
git log --pretty=oneline

# 显示提交日志及相关变动文件
git log --stat
git log -p -m

2. 显示变更

# 显示所有未添加至index的变更
git diff

# 显示所有已添加index但还未commit的变更
git diff --cached

# 比较与上一个版本的差异
git diff HEAD^

# 比较远程分支master上有本地分支master上没有的
git diff origin/master..master

# 只显示差异的文件,不显示具体内容
git diff origin/master..master --stat

六、删除和撤销

1. 删除

# 删除index中的文件
git rm xxx

# 删除分支
it branch -d xxx

# 强制删除分支
git branch -D

2. 撤销

# 撤销提交 commitId: xxx-commitid
git revert xxx-commitid

# 回退一个版本
git reset --hard head^

# 回退 commitId: xxx-commitid
git reset --hard xxx-commitid

七、合并和 Rebase

1. 合并

# 合并远程master分支至当前分支
git merge origin/master

2. Rebase

# 合并最近的 n 次提交纪录
git rebase -i HEAD~n

# 合并远程master分支至当前分支
git rebase master

八、远程仓库

1. 关联远程仓库

git remote add origin '远程仓库地址'

2. 获取同步远程分支

# 获取所有远程分支(不更新本地分支,另需merge)
git fetch

# 获取所有原创分支并清除服务器上已删掉的分支
git fetch --p
git fetch --prune

# 获取远程分支master并merge到当前分支
git pull origin master

3. 推送远程分支

==git push origin与git push -u origin master的区别
$ git push origin
上面命令表示,将当前分支推送到origin主机的对应分支。
如果当前分支只有一个追踪分支,那么主机名都可以省略。
$ git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,
这样后面就可以不加任何参数使用git push。
$ git push -u origin master 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,
后面就可以不加任何参数使用git push了。 不带任何参数的git push,默认只推送当前分支,这叫做simple方式。
此外,还有一种matching方式,会推送所有有对应的远程分支的本地分支。
Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。

# 推送已存在的分支
git push

# 首次推送
git push origin master:master
git push -u origin master

4. 删除远程分支

# 删除远程仓库的 remote_branch 分支
git push origin :remote_branch