配置git用户:
git config --global user.name "mew"
配置git邮箱:
git config --global user.email "215687833@qq.com"
配置git语法高亮:
git config --global color.ui true
查看git配置信息:
git config --list
cat .gitconfig
初始化git本地仓库:
初始化的目录可以是空目录,也可以是带有内容的目录。
[root@node2 ~]# mkdir gittest
[root@node2 ~]# cd gittest/
[root@node2 gittest]# git init
查看工作区状态:
[root@node2 gittest]# git status
# On branch master
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)
隐藏目录.git下文件作用说明:
Branches:分支目录
config :定义项目特有的配置选项
description :仅供git web使用
HEAD :指当前的分支
hooks :包含git钩子文件
info :包含一个全局排除文件(exclude文件)
objects :存放所有数据内容,有info和pack两个子文件夹
Refs:存放指向数据(分支)的提交对象的指针
Index:保存暂存区信息,在执行git init的时候,这个文件还没有
添加文件到暂存区:
因为是当前工作区,’.’表示当前目录所有修改过或者新增的文件。
git add . 或者git add *
将文件撤出暂存区:
# git rm --cached test
将文件从暂存区和工作区一同删除:
#git rm -f test
提交到本地仓库:
[root@node2 gittest]# git add .
[root@node2 gittest]# git commit -am "test file"
[master (root-commit) c83ef8a] test file
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 test
Git重命名仓库文件:
# git mv test testfile
# git commit -am "mv"
错误操作:
直接mv将文件重命名,git会认为先删除了仓库文件,然后新增一个新的文件。
Git文件比对:
默认比对暂存区和当前工作目录文件不同。
查看历史提交的信息:
# git log
一行简单的显示commit提交信息:
# git log --oneline
显示当前指针的指向:
[root@node2 gittest]# git log --oneline --decorate
832fe4f (HEAD, master) mv
c83ef8a test file
显示具体的修改信息:
# git log -p
# git log -p -l 数字1
Git回滚:
回滚到指定版本。
# git reset --hard c83ef8a
git查看总的所有历史记录:
# git reflog
[root@node2 gittest]# git reflog
c83ef8a HEAD@{0}: reset: moving to c83ef8a
832fe4f HEAD@{1}: commit: mv
c83ef8a HEAD@{2}: commit (initial): test file
创建分支:
# git branch testing
查看分支:
# git branch
*号在那个分支前面,就是当前在哪个分支。
切换分支:
[root@node2 gittest]# git checkout testing
Switched to branch 'testing'
[root@node2 gittest]# git status
# On branch testing
nothing to commit, working directory clean
创建并切换分支:
# git checkout -b dev
删除分支:
# git branch -D dev
分支概念:
当前分支做的修改不会对master分支造成影响。
Testing分支新增一个文件:
切换到master分支查看:
分支合并:
git merge testing
要在master分支上合并testing分支。
Git标签使用:
创建标签:
[root@node2 gittest]# git tag -a v1.0 -m "master testing merge"
[root@node2 gittest]# git tag
v1.0
查看标签修改内容:
# git show v1.0
回滚到某个标签:
# git reset --hard v1.0
删除标签:
# git tag -d v1.0