部署环境:
[root@miner_k ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
安装git命令
[root@miner_k ~]# yum -y install git
本地仓库的初始化
[root@miner_k ~]# mkdir git-test
[root@miner_k ~]# cd git-test
[root@miner_k git-test]# git init
初始化空的 Git 版本库于 /root/git-test/.git/
[root@miner_k git-test]# ls -a
. .. .git
git的工作区、暂存区、提交到仓库的命令
大体结构如下图:
各部分的具体命令详解:
工作区 —> 暂存区 —> 本地仓库
git add 将工作区中的文件上传到暂存区
格式:git add <filename>
[root@miner_k git]#git add 1.txt
或者
[root@miner_k git]#git add -A 将工作区中所有的文件上传到暂存区
git status 查看当前的工作目录状态
[root@miner_k git]# git status
# On branch master
#
# Initial commit
#
# Changes to be committed:
# (use "git rm --cached <file>..." to unstage)
#
# new file: 1.txt
#
[root@miner_k git]# git status
# On branch master
nothing to commit (working directory clean)
git commit 将暂存区的文件上传到本地仓库中
格式:git commit -m “描述”
[root@miner_k git]# git commit -m "add 1.txt"
[master (root-commit) 204d4fb] add 1.txt
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 1.txt
本地仓库 <—> 工作区
git log 查看提交日志
[root@miner_k git]# git log
commit 1295784c9e68b89aafffe7b0fa7b932f75099a84
Author: miner_k <miner_k@example.com>
Date: Mon May 8 21:06:51 2017 +0800
add 2.tx
commit 204d4fb7021b215988a7c5faf20627fbaaef3198
Author: miner_k <miner_k@example.com>
Date: Mon May 8 20:56:28 2017 +0800
add 1.txt
[root@miner_k git]# git log --pretty=oneline #一行显示
1295784c9e68b89aafffe7b0fa7b932f75099a84 add 2.tx
204d4fb7021b215988a7c5faf20627fbaaef3198 add 1.txt
[root@miner_k git]# git log --pretty=oneline --abbre-commit #能看出分支结构
fatal: unrecognized argument: --abbre-commit
[root@miner_k git]# git log --pretty=oneline --abbrev-commit
1295784 add 2.tx
204d4fb add 1.txt
git reset –hard 版本回退以及回到未来版本
git reset --hard HEAD^ #将工作区的内容切换到上一个版本
git reset --hard HEAD^^ #将工作区的内容切换到上两个版本
git reset --hard HEAD~10 #将工作区的内容回退10个版本
格式:git reset --hard commit_id
回退到指定的版本(commit_id通过git log获取)
[root@miner_k git]# git reset --hard 204d4f
HEAD is now at 204d4fb add 1.txt
git reflog 查看引用日志以及版本到达将来
[root@miner_k git]# git reflog
204d4fb HEAD@{0}: 204d4f: updating HEAD
1295784 HEAD@{1}: commit: add 2.tx
[root@miner_k git]# git reset --hard 1295784 #回到将来的版本
或者
[root@miner_k git]# git reset --hard HEAD@{1}
放弃暂存区
(使用git add 将文件添加到暂存区之后使用下面的命令删除暂存区中的内容)
格式:git reset HEAD <file>
[root@miner_k git]# git reset HEAD 3.txt
放弃工作区的修改
(比如:在3.txt中增加或是删除一行,可以使用这个命令直接回退)
格式:git checkout -- <file>
[root@miner_k git]# git checkout -- 3.txt
git stash 将暂存区中的内容保存的某一位置
通过下面的测试可以看出git stash能将暂存区中的内容存放到某一空间,但不会对工作区中修改的文件做存储
[root@miner_k git]# git status
# On branch dev
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: dev3.txt
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# dev4.txt
[root@miner_k git]# git stash
Saved working directory and index state WIP on dev: 20a6f2d append 3.txt on dev
HEAD is now at 20a6f2d append 3.txt on dev
[root@miner_k git]# git status
# On branch dev
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# dev4.txt
nothing added to commit but untracked files present (use "git add" to track)
git stash list
[root@miner_k git]# git stash list
stash@{0}: WIP on dev: 20a6f2d append 3.txt on dev
恢复暂存区的状态
git stash pop 恢复到最后一个位置,并删除记录
或者
git stash apply stash@{0}
git stash drop stash@{0}
扩展链接
本地连接到github的仓库(一般常使用github的账号和密码确认身份的方式连接github的仓库)
git中分支的使用
git中标签的使用
github官网使用