Git常规使用
1. 创建数据-提交数据
2. git四种状态
3. git基础命令
3.1提交本地文件到暂存区域
3.1.1、查看git的状态
[root@git git_data]# git status # 位于分支 master # 初始提交 无文件要提交(创建/拷贝文件并使用 "git add" 建立跟踪)
3.1.2、在工作目录创建三个文件
[root@git git_data]# touch a b c [root@git git_data]# git status # 位于分支 master # # 初始提交 # # 未跟踪的文件: # (使用 "git add <file>..." 以包含要提交的内容) # # a # b # c 提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
3.1.3、提交一个文件到暂存区域
[root@git git_data]# git add a # 使用git add . 或者* 添加目录中所有改动过的文件 [root@git git_data]# git status # 位于分支 master # # 初始提交 # # 要提交的变更: # (使用 "git rm --cached <file>..." 撤出暂存区) # # 新文件: a # # 未跟踪的文件: # (使用 "git add <file>..." 以包含要提交的内容) # # b # c
3.1.4、撤出暂存区文件
[root@git git_data]# git rm --cached c rm 'c' [root@git git_data]# git status # 位于分支 master # # 初始提交 # # 要提交的变更: # (使用 "git rm --cached <file>..." 撤出暂存区) # # 新文件: a # 新文件: b # # 未跟踪的文件: # (使用 "git add <file>..." 以包含要提交的内容) # # c
3.1.5、删除文件
1.先从暂存区撤回到工作区、然后直接删除文件 git rm --cached c rm -f c 2.直接从暂存区域同工作区域一同删除文件命令 git rm -f b
3.2、提交到本地仓库
3.1.1、提交暂存区文件到本地仓库
[root@git git_data]# git commit -m "commit a" # 提交到本地仓库 [master(根提交) b4017a8] commit a 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 a [root@git git_data]# git status # 位于分支 master 无文件要提交,干净的工作区
3.1.2、修改文件名称
使用linux命令修改文件名 [root@git git_data]# mv a a.txt 使用git命令删除文件 [root@git git_data]# git rm --cached a 重新添加文件到暂存区 [root@git git_data]# git add a.txt 提交到本地仓库 [root@git git_data]# git commit -m "rename a.txt a" 第二种方法:直接使用git命令改名 [root@git git_data]# git mv a.txt a
3.1.3、修改文件内容
[root@git git_data]# echo aaa > a [root@git git_data]# git diff a # 比对本地工作目录和暂存区文件的不同 diff --git a/a b/a index e69de29..72943a1 100644# --- a/a +++ b/a @@ -0,0 +1 @@ +aaa [root@git git_data]# git add a # 提交a文件到暂存区域、在用git diff是相同的 [root@git git_data]# git diff --cached a # 比对的是暂存区和本地仓库文件的不同处 diff --git a/a b/a index e69de29..72943a1 100644 --- a/a +++ b/a @@ -0,0 +1 @@ +aaa [root@git git_data]# git commit -m "modified a" # 提交后在比对则暂存区和本地仓库内容相同
3.3、查找和回滚代码文件内容
3.3.1、查看历史的git commit快照操作
[root@git git_data]# git log # 查看历史的git commit快照操作 commit 4c57a605997f511149bfec53d9018b503e77f961 # 哈希唯一标识的字符串 Author: qmf <qmf@qq.com> # 作者个人信息 Date: Thu Aug 23 07:54:23 2018 +0800 # 时间 modified a # -m 个人写的提交描述信息 [root@git git_data]# git log --oneline # 一行简单的显示commit信息 4c57a60 modified a [root@git git_data]# git log --oneline --decorate # 显示当前的指针指向哪里 4c57a60 (HEAD, master) modified a [root@git git_data]# git log -p # 显示具体内容的变化 [root@git git_data]# git log -1 # 只显示1条内容
3.3.2、恢复历史数据
1.只更改了当前目录 [root@git git_data]# echo "333" >> a # 写入数据 [root@git git_data]# git checkout -- a # 从暂存区覆盖本地工作目录 2.修改了本地目录且同时提交到了暂存区 [root@git git_data]# echo ccc >> a # 添加新内容 [root@git git_data]# git add . # 提交到暂存区 [root@git git_data]# git reset HEAD a # 撤出暂存区
3.3.3、回滚数据到任意位置
[root@git git_data]# git reflog #查看所有的历史提交记录 [root@git git_data]# git reset --hard 4c57a60 #回滚到任意哈希值位置
总结
git config --global user.name "lizhenya"
git config --global user.email "11@qq.com"
git config --global color.ui true
git init 初始化目录为仓库
git status 查看git状态
git add a 添加文件到暂存区域
git commit -m "new file a"
git rm --cached a 撤出暂存区的文件
git add . 添加当前所有的文件到暂存区
文件的删除
git rm -f 同时删除工作区域和暂存区域
git改名
git mv a a.txt
git add .
git commit -m "rename a a.txt"
git 比对内容
git diff 比对工作目录和暂存区的不同
git diff --cached 比对暂存区和本地仓库的不同
git 查看历史操作信息
git log 查看历史提交记录
git log --oneline 一条显示提交的历史记录
git log --oneline --decorate 查看当前的指针
git reset --hard e7b04f5 回滚代码至某个版本
git reflog 查看所有的历史提交记录