【命令】Git学习笔记

前言

git是一个分布式版本控制软件,最初由林纳斯·托瓦兹创作,于2005年以GPL发布。最初目的是为更好地管理Linux内核开发而设计。应注意的是,这与GNU Interactive Tools(一个类似Norton Commander界面的文件管理器)不同。(维基百科

安装

1
brew install git

全局配置

查看所有配置

1
git config --list

统一配置身份

1
git config --global --edit

单独配置身份

配置当前使用者的用户名

<username>:用户名

1
git config --global user.name "<username>"

配置当前使用者的邮箱

<email>:邮箱

1
git config --clobal user.email "<email>"

重置用户名密码信息

1
git config --system --unset credential.helper

仓库

初始化当前目录

  • 初始化成功会在当前目录下自动创建一个存放git配置信息的名为.git的隐藏目录
1
git init

查看状态

  • 查看当前目录下的git状态,可以通过状态指引完成提交
1
git status

新增

  • 将指定文件从工作空间添加到暂存区

<name>:文件名

1
git add <name>

新增所有

  • 将当前目录及其子目录下的所有文件从工作空间添加到暂存区
1
git add .

提交

  • 将暂存区的所有文件提交到本地仓库
1
git commit
  • 通过vim键入提交的备注

  • :wq保存并退出完成备注

快速提交

  • 不需要打开vim而快速提交

<text>:需要提交的备注内容

1
git commit -m "<text>"

直接提交

  • 将当前目录及其子目录下的所有文件从工作空间添加到暂存区,并直接进行提交
1
git commit -a

直接快速提交

  • 将当前目录及其子目录下的所有文件从工作空间添加到暂存区,不需要打开vim,并直接进行快速提交
1
git commit -a -m "<text>"

推送

  • 预先在远程创建仓库,并将本地仓库的所有文件推送到远程仓库(公共仓库或自己部署的私有仓库)
1
git push

首次推送

  • 指定当前git目录对应的远程仓库地址

<url>:远程仓库地址

1
git remote add origin <url>
  • 首次推送要指定主分支

master:主分支名,可以自定义

1
git push --set-upstream origin master

克隆

  • 首次将所有文件从远程仓库直接克隆到本地仓库(当前目录下)

<git>:远程仓库地址

1
git clone <git>

克隆后重命名

<new_name>:新的目录名

1
git clone <git> <new_name>

克隆后重新定义路径并重命名

<new_src>:新的存放目录

1
git clone <git> <new_src>/<new_name>

拉取

  • 在已经克隆的情况下,从远程仓库拉取新文件到本地仓库
1
git pull

参数指定拉取策略

1
git pull --rebase
1
git pull --no-rebase
1
git pull --ff-only

当前项目配置拉取策略

1
git config pull.rebase false
1
git config pull.rebase true
1
git config pull.ff only

全局配置拉取策略

1
git config --global pull.rebase false
1
git config --global pull.rebase true
1
git config --global pull.ff only

分支

查看当前分支

1
git branch

创建分支

<name>:分支名

1
git branch <name>

切换分支

1
git checkout <name>

合并其他分支到当前分支

1
git merge <name>

删除已合并分支或空分支

1
git branch -d <name>

强制删除分支

1
git branch -D <name>

重命名分支

1
git branch -M <name>

同步于主分支

1
git rebase master

远端分支信息获取到本地

1
git fetch

将远端分支映射到本地分支

<name1>:本地分支名
<name2>:远端分支名

1
git checkout -b <name1> origin/<name2>

版本与回滚

查看所有版本

1
git reflog

查看当前版本之前的所有版本

1
git log

从暂存区回滚一个文件

<name>:回滚的文件名

1
git checkout <name>

从本地仓库回滚所有文件

<version>:版本号

1
git reset --hard <version>

强制提交

1
git push -f origin master

完成

参考文献

CSDN——成长中de大神
CSDN——云胡不喜?
博客园——ChuckLu
CSDN——AdleyTales