Git关系图

Git关系图

  • Workspace:工作区
  • Index / Stage:暂存区
  • Repository:仓库区(或本地仓库)
  • Remote:远程仓库

config

作用

  • 配置Git相关变量
    • git config --system:即系统级配置文件,存储在 /etc/gitconfig 中,系统中每个用户都会读取该文件中的变量
    • git config --global:即全局级配置文件,存储在 ~/.gitconfig~/.config/git/config 中,只针对当前用户
    • git config --local:即仓库级配置文件,存储在当前仓库的git目录中的config文件(即 .git/config)

用法

  • 查看配置项及其优先级:
1
git config --list

1
git config -l
  • 获取指定键的值(根据作用域,只返回第一个匹配到的值):
1
git config --get [key]
  • 设置提交代码的用户名:
1
git config user.name [name]
  • 设置提交代码的电子邮件地址:
1
git config user.email [address]

init

作用

  • 用于创建一个新的代码库(一个空的Git仓库),包含.git目录
    • objects
    • refs/head
    • refs/tags
    • 模板文件
    • 引用主分支的HEAD初始的一个HEAD文件

用法

  • 在当前目录初始化仓库
1
git init
  • 在其它目录初始化仓库
1
git init [directory]

clone

作用

  • 用于通过指定的URL获取一个代码库

用法

  • 克隆一个远程仓库
1
git clone [url]

add

作用

  • 用于添加文件到暂存区

用法

  • 添加当前目录中的所有文件
1
git add .
  • 添加当前目录中的某个文件
1
git add [filepath]

commit

作用

  • 在版本历史记录中永久记录文件

用法

  • 提交更改
1
git commit -m "[message]"
  • 添加当前目录中的所有文件的所有更改至缓冲区,并提交
1
git commit -a -m "[message]"

diff

作用

  • 比较版本或分支之间的差异

用法

  • 显示尚未添加到stage的文件的变更
1
git diff
  • 显示添加到stage的文件与当前最新版本之间的差异
1
git diff –-staged
  • 显示两个分支之间的差异
1
git diff [first branch] [second branch]

reset

作用

  • 撤销已有的提交

用法

  • 从stage中撤出指定的文件,但可以保留文件的内容
1
git reset [file]
  • 撤销指定提交之后的所有提交,并在本地保留变更
1
git reset [commit-ID]
  • 丢弃所有的历史记录,并回滚到指定的提交
1
git reset –-hard [commit-ID]

status

作用

  • 查看存储库的状态

用法

  • 显示所有需要提交的文件
1
git status

rm

作用

  • 从存储库中删除文件

用法

  • 将删除工作目录中的文件,并将删除动作添加到stage;使用 --cached 标志将其从暂存区中删除
1
git rm [--cached] [file]

log

作用

  • 显示当前分支或某个文件的历史记录

用法

  • 显示当前分支的版本历史记录
1
git log
  • 显示某个文件的版本历史记录,包括文件的重命名
1
git log --follow [file]

show

作用

  • 显示指定提交的内容变更

用法

  • 显示指定提交的元数据以及内容变更
1
git show [commit-ID]

tag

作用

  • 为某次提交进行标签操作

用法

  • 给指定的提交添加标签
1
git tag [commit-ID]
  • 删除某次提交的标签
1
git tag -d [commit-ID]

branch

作用

  • 对当前代码库进行分支相关的操作

用法

  • 显示当前代码库中所有的本地分支
1
git branch
  • 创建一个分支
1
git branch [branch_name]
  • 删除指定的分支
1
git branch -d [branch_name]

checkout

作用

  • 在当前仓库中的分支之间进行切换

用法

  • 切换分支
1
git checkout [branch_name]
  • 创建一个分支,并切换到新分支上
1
git checkout -b [branch_name]

merge

作用

  • 将指定分支的历史记录合并到当前分支,具体可参考本人的这篇文章:

用法

  • 将branch_name分支合并到当前分支
1
git merge [branch_name]

remote

作用

  • 将本地的代码库连接到远程服务器

用法

  • 连接到远程服务器
1
git remote add [name] [remote_Link]

push

作用

  • 推送变更到远程代码库

用法

  • 将主分支上提交的变更发送到远程代码库
1
git push [remote_repo_nickname] master
  • 将指定分支上的提交发送到远程代码库
1
git push [remote_repo_nickname] [branch_name]
  • 将所有分支发送到远程代码库
1
git push --all [remote_repo_nickname]
  • 删除远程代码库上的一个分支
1
git push [remote_repo_nickname] : [branch_name]

pull

作用

  • 获取远程服务器上的变更,并合并到你的工作目录

用法

  • 获取远程服务器上的变更
1
git pull [repository_link]

stash

作用

  • 对本地修改的文件进行临时保存或恢复

用法

  • 临时保存所有修改的文件
1
git stash save
  • 恢复最近一次stash(储藏)的文件
1
git stash pop
  • 显示stash的所有变更
1
git stash list
  • 丢弃最近一次stash的变更
1
git stash drop