九、Git命令行
Git Bash命令同时支持Linux相关命令
1、创建仓库(本地库)
1.1 初始化本地仓库
Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令。
在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变(不像 SVN 会在每个子目录生成 .svn 目录,Git 只在仓库的根目录生成 .git 目录)。
本地库标识文件(.git)
D:\java\git\GitWorkSpace à选择GitWorkSpace当作我Git存放本地库目录
创建一个项目目录: WeChat
使用当前目录作为Git仓库,我们只需使它初始化
初始化后,会在 WeChat 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。
查看隐藏的.git文件内容:
ll –A -a/A 表示查看隐藏文件
ll .git/ 表示查看.git 下的文件列表显示
例如:查看.git/config 内容
注意:.git目录是存放本地库相关的目录和文件,不要对其进行修改和操作
1.2. 设置签名
签名概述
签名的作用:用于标识不同的开发人员(身份)
形式:
用户名:xx
Email邮箱:xx@xx.com
注意:这里的签名和远程库(代码拖管中心GitHub/GitLab)无任何关系。
-
项目级别(仓库)
仅在当前本地库范围有效
-
系统级别
登录当前操作系统的用户范围
开始—》窗口—》
级别优先级
就近原则:项目级别优先级大于系统(用户)级别签名
注意:(签名级别必须要设置,如果都不设置,GIT可能会导致命令出差。无法辨别)
签名命令
git config
-
项目级别(仓库):仅在当前本地库范围有效
git config user.name xx git config user.email xx@xx.com
-
**系统级别:**登录当前操作系统的用户范围
git config --global user.name 52Hz git config --global user.email xx@xx.com
查看配置文件
2、常用命令
1、 如何将一个文件在工作区提交到本地库?
2、 修改呢?
git status
git status [<options>…] [--] [<pathspec>…]
git status命令用于显示工作目录和暂存区的状态。使用此命令能看到那些修改被暂存到了, 哪些没有, 哪些文件没有被Git tracked到。git status不显示已经commit到项目历史中去的信息。
看项目历史的信息要使用git log
git add
git add hello.txt
git add hello.txt
命令将文件内容添加到索引(将修改添加到暂存区)。也就是将要提交的文件的信息添加到索引库中。(将工作区写入暂存区)
描述:此命令将要提交的文件的信息添加到索引库中(将修改添加到暂存区),以准备为下一次提交分段的内容。
git add 后,再次查询git status
(文件由红色变为绿色)
git rm –-cached
git rm
命令用于从工作区和索引中删除文件
简介
git rm [-f | --force] [-n] [-r] [--cached]
[--ignore-unmatch] [--quiet] [--] <file>…
git rm –-cached 文件名称 //用于将暂存区的文件恢复到工作区
git commit
git commit
命令用于将更改记录(提交)到存储库。将索引的当前内容与描述更改的用户和日志消息一起存储在新的提交中。
描述git commit
命令将索引的当前内容与描述更改的用户和日志消息一起存储在新的提交中。
执行命令:git commit 文件名.txt后,显示如下需要输入提交文件的备注或描述。
可通过:set nu 显示行号方式便利输入备注信息
第一次修改文件
git checkout
git checkout
命令用于切换分支或恢复工作树文件git checkout
是git最常用的命令之一,同时也是一个很危险的命令,因为这条命令会重写工作区
文件需要知道是以本地库为主(进行提交命令),还是回滚之前文件
第二次修改文件
要么本地库为主,要么工作区为主
git log
git log
命令用于显示提交日志信息。
使用语法
git log [<options>] [<revision range>] [[\--] <path>…]
通过如下方式更优雅的显示(查看历史记录)
git log --pretty=oneline
git log --oneline
git reflog/reset
查看(设置)历史记录(之前/之后):
git reset
命令用于将当前HEAD
复位到指定状态。一般用于撤消之前的一些操作(如:git add
,git commit
等)。
git reflog
用于显示需要回退的步骤HEAD@{ * }
HEAD@{移动到当前版本需要多少步}
基于索引值操作[推荐]
git reset --hard [局部索引值]
查看当前版本记录:
通过git reset --hard [局部索引值]跳到指定版本
3、永久删除后找回
创建文件
提交本地仓库
删除文件
查看提交日志
找回最新版本文件
注意:git只要在本地库发生操作,都会进行版本记录
4、文件比较
git diff
命令用于显示提交和工作树等之间的更改。此命令比较的是工作目录中当前文件和暂存区域快照之间的差异,也就是修改之后还没有暂存起来的变化内容。(默认是和暂存区文件进行比较)
1、将工作区中的文件和暂存区进行比较
$ git diff a.txt
修改文件
比较
2、暂存区中的文件和本地库进行比较
HEAD代表本地库最新版本指针