乐趣区

关于git:手把手教你使用Git

前言

Git 只是一个分布式版本控制系统,只有满足日常应用就能够了。所以本文只讲罕用指令的。

Git 装置

作者就 window 零碎为例,window 平台 git 下载地址;
下载完之后依据提醒装置就行了。装置实现后在屏幕空白处点击鼠标右键菜单栏

Git 首次运行的一些配置

在屏幕空白处右击鼠标右键在菜单栏中抉择 Git Bash Here 点击进入命令行如图所示!

命令行咱们能够输出

git --version

查看以后 git 的版本号如图

用户信息配置:

$ git config --global user.name "用户名"
$ git config --global user.email 邮箱地址 

查看用户配置信息:

$ git config --list// 全副配置信息
$ git config user.xxx// 查看指定的配置信息

Git 基本概念:

工作区:电脑中的文件目录
暂存区:个别寄存在.get 文件夹的 index 的文件
版本库:蕴含.git 文件夹的工作区

创立和删除仓库

在你电脑上抉择一个 (空) 文件夹,在该文件夹下关上 git Bash Here,执行

$ git init 文件夹名(可选)// 如果 git init 在以后文件夹为仓库,如果 git init fileName 就会以 fileName 为仓库

创立前

创立后

删除本地仓库:

$ find . -name ".git" | xargs rm -Rf 

克隆我的项目:

$ git clone url(要克隆的地址)

如果克隆中遇到这种状况:

阐明是被克隆的的我的项目没有公钥
解决方案:获取公钥

$ ssh-keygen -t rsa -C(注册时的邮箱)

把获取的 id_rsa.pub 文件的内容粘贴到

克隆前后:

提交与修复

将文件上传到暂存区

$ git add file1 file2 ...// 上传一个或多个指定文件
$ git add 文件夹 // 上传整个文件夹
$ git add . // 上传整个文件

查看文件提交状态

$ git status -s// 加 - s 显示简短的输入后果,不加 - s 显示具体的输入后果
// 参数阐明(A 提交胜利;AM:文件在增加到缓存之后又有改变 ??没有增加到暂存区的)

比拟文件不同(文件在暂存区和工作区的不同之处)

$ git diff 文件名 // 尚未缓存的改变和暂存区的不同
$ git diff --cached 文件名 || git diff --staged 文件名 // 查看暂存区和本地仓库的不同
$ git diff HEAD// 查看已缓存的与未缓存的所有改变
$ git diff --stat// 显示摘要而非整个 diff

将暂存区的文件提交到本地仓库

$ git commit 文件名 -m "提交的形容"//
$ git commit 文件名 -am "提交的形容"// 跳过 git add 缓存环节

查看 commit 的 id

$ git reflog

回退版本

$ git reset (commit id)// 回退到指定版本 =>commit id 能够通过 $ git reflog 指令查看
$ git reset HEAD^// 所有内容回头到上一个版本
$ git reset HEAD^ 文件名 // 指定文件回退到上一个版本
$ git reset --soft HEAD~3// 回退到上上上个版本
$ git reset -hard HEAD || (commit id)// 留神:审慎应用 –hard 参数,它会删除回退点之前的所有信息。$ git reset --hard origin/master(示意近程分支)// 将本地的状态回退到和近程的一样(罕用)

HEAD 参数阐明:

HEAD  || HEAD~0// 示意以后版本
HEAD^ || HEAD~1// 上一个版本
HEAD^^ || HEAD^2// 上上一个版本
HEAD^^^ || HEAD^3// 上上上一个版本
以此类推...

回退问题

解决办法

git reset --hard 

删除文件

$ git rm 文件名 // 从暂存区和工作区删除文件(如果删除文件夹下的文件 =》文件夹名 / 文件名)$ git rm -f 文件名 // 强行从暂存区和工作区中删除批改后的文件
$ git rm --cached 文件名 // 从暂存区删除文件工作区依然保留
$ git rm -r 文件夹 ming/*// 递归删除删除整个目录中的所有子目录和文件

间接抛弃工作区的批改 || 误删版本库中还有能够复原

$ git checkout -- 文件名

挪动或重命名文件

$ git mv oldFile newFile || (文件夹)// 文件重命名 ||(挪动到文件夹内)$ git mv -f oldFile newFile// 强制文件重命名

近程仓库

增加近程库

$ git remote add 近程仓库名 仓库地址

查看近程库

$ git remote -v

删除近程库

$ git remote rm 近程库名

上传近程代码并合并

$ git push 近程主机名 本地分支名: 近程分支名

解决方案: 本地短少 README.md

git pull --rebase 近程主机 近程分支:本地分支名 // 把 README.md 拉到本地

下载近程代码并合并

$ git pull 近程主机 近程分支:本地分支名

分支治理

创立分支

$ git branch 分支名

切换分支

$ git checkout 分支名
$ git switch 分支名(更偏差此指令)

查看分支

$ git branch

创立并切换分支

$ git checkout -b 分支名
$ git switch -c 分支名

删除分支

$ git branch -d 分支名
$ git branch -D 分支名 // 如果要抛弃一个没有被合并过的分支,能够通过强行删除。

分支合并

$ git merge 要合并的分支

查看提交日志

$ git log // 具体的日志
$ git log --oneline// 列表模式显示日志
$ git log --reverse --oneline// 逆向显示日志
$ git log --graph // 查看历史中什么时候呈现了分支、合并
$ git blame 文件名 // 以列表模式显示批改记录

结尾

以上就是作者在开发中罕用的指令。
对于 git 更加全面具体的学习, 请参考 git 官网。

退出移动版