git 是什么
Git是目前世界上最先进的开源的分布式版本控制系统。
需要安装git
https://segmentfault.com/a/1190000011809698(安装目录不要在中文下)
- git config --global user.name xxx(英文用户名)
- git config --global user.email xxxx(邮箱地址)
- git config --list 查看全局的配置
常用命令
添加查看
命令 | 说明 |
---|
git config --list | 获取git 的配置项 |
git config 配置项名 | 获取具体的配置名 |
git config 配置项名 新名字 | 修改配置项 |
git init | 初始化本地版本库 |
git status | 查看仓库状态 |
git add . | 把工作区的所有修改提交到暂存区 |
git add 文件路径 | 把工作区指定文件提交到暂存区 |
git commit -m “描述” | 把暂存区的修改提交本地版本库(master分支) |
git diff | 查看工作区具体修改 |
git diff --cached | 查看暂存区具体修改 |
git pull origin master | 远程代码拉取到本地工作区 |
git log | 查看历史记录 (记录非常多的情况下,英文状态下Q退出当前记录) |
git reflog | 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作) |
git commit -am “描述” | 提交工作区自上次commit之后的变化,直接到仓库区(省略git add) |
添加到本地仓库(版本库)
1:git init
2:git add .
3:git commit -m "描述"
4:git log
撤销
第一种情况:撤销工作区的修改
# git checkout 文件路径
第二种情况:撤销暂存区的修改
# 1. git reset 文件路径 (把暂存区的修改撤回工作区)
# 2. git checkout 文件路径
第三种情况:版本回退
# git reset --hard HEAD^ //回退到上个版本
# git reset --hard HEAD^^ //上上个版本
HEAD^^^~n //回退到n个版本上
回退到指定版本(回到现在过去)
git reset --hard commit_id(e66aa88...)
如何获取所有版本的commit_id呢?
针对这个需求,需要分两种情况:
* 第一,git bash窗口没有关闭,使用前面查过的commit_id
* 第二,git bash窗口关闭。比如,昨天做的操作,今天后悔了。 使用 git reflog
远程仓库操作
命令 | 说明 |
---|
git clone 仓库的地址 | 克隆一个版本库到新的目录 (git init 不要重复使用) |
git remote add origin 仓库的地址 | 添加远程仓库地址(链接远程仓库) |
git push origin master | 推送到远程服务器 |
git push -u origin master | 如果当前分支与多个主机存在追踪关系,则可以使用-u选项指定一个默认主机,这样后面就可以不加任何参数使用git push。 |
git remote -v | 查看关联的远程服务器名称,在每一个后面有url |
git pull origin master | 远程代码拉取到本地工作区 |
git pull --rebase origin master | 拉取远程的文件把本地的覆盖 |
git pull --allow-unrelated-histories | 拉取失败的时候(允许不相关的历史合并) |
git remote set-url origin ssh/https地址 | ssh与https互换 |
git 分支管理
命令 | 说明 |
---|
git branch 分支名 | 创建分支 |
git branch | 查看本地所有分支 |
git branch -r | 查看远程所有分支 |
git branch -a | 查看本地和远程所有分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 合并分支 |
git checkout -b 分支名 | 创建并切换分支 |
git branch -d 分支名 | 删除本地分支 |
git push origin -d 分支名 | 删除远程分支 |
git fetch origin 远程分支:本地分支 | 拉取远分支,并创建本地分支 |
git找回本地误删的文件
- 首先,我们先用git status 看看工作区的变化
$ git status
On branch master
...
deleted: Home/View/index.html
...
Home/View/index.html,记住这个。
$ git reset HEAD Home/View/index.html
$ git checkout Home/View/index.html
git 中一些选项解释
-d --delete:删除
-D --delete --force的快捷键
-f --force:强制
-m --move:移动或重命名
-M --move --force的快捷键
-r --remote:远程
-a --all:所有
gitHub 推荐使用 ssh
公钥和秘钥:任意位置打开 git命令窗口,输入:ssh-keygen
一顿回车,之后会看到路径和图形代码,说明成功。
命令 | 说明 |
---|
pwd | 查看工作目录 |
cd [目录位置] | 切换工作目录 |
ls [选项]… [目录或文件名] | 显示某一个文件,或者某一个目录旗下子目录的属性。 |
du [选项]… [目录或文件名] | 统计目录及文件的空间占用情况 |
命令窗口退出(英文状态下)
:wq 强制退出当前
q 退出git log 描述