安装git

[root@localhost ~]# yum -y install git
[root@localhost ~]# git --version
git version 1.8.3.1

初始化git仓库:

[root@localhost git_data]# mkdir /git_data/
[root@localhost ~]# cd git_data/
[root@localhost git_data]# git init
重新初始化现存的 Git 版本库于 /root/git_data/.git/

此时查看仓库的状态:

[root@localhost git_data]# ll
总用量 0
[root@localhostgit_data]# git status
# 位于分支 master
无文件要提交,干净的工作区

 创建文件:

[root@localhost git_data]# touch 123.txt
[root@localhost git_data]# git status
# 位于分支 master
# 未跟踪的文件:
#   (使用 "git add <file>..." 以包含要提交的内容)
#
#       123.txt
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
[root@localhost git_data]# git add .   #提交到暂存区,".”代表所有
[root@localhost git_data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#       新文件:    123.txt
(使用 "git rm --cached <file>..." 撤出暂存区)
[root@localhost git_data]# rm -rf 123.txt
[root@localhost git_data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#       新文件:    123.txt
#
# 尚未暂存以备提交的变更:
#   (使用 "git add/rm <file>..." 更新要提交的内容)
#   (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
#       删除:      123.txt
#
[root@localhost git_data]# git rm --cached 123.txt
rm '123.txt'
[root@localhost git_data]# ll
总用量 0
[root@localhost git_data]# git status
# 位于分支 master
#
# 初始提交
#
无文件要提交(创建/拷贝文件并使用 "git add" 建立跟踪)

  

[root@localhost git_data]# touch 123.txt
[root@localhost git_data]# git add .
[root@localhost git_data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#       新文件:    123.txt
#
[root@localhost git_data]# git rm --cached 123.txt
rm '123.txt'
[root@localhost git_data]# ll
总用量 0
-rw-r--r-- 1 root root 0 4月  20 16:09 123.txt
[root@localhost git_data]# git status
# 位于分支 master
#
# 初始提交
#
# 未跟踪的文件:
#   (使用 "git add <file>..." 以包含要提交的内容)
#
#       123.txt
提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
[root@localhost git_data]# git add .
[root@localhost git_data]# git status
# 位于分支 master
#
# 初始提交
#
# 要提交的变更:
#   (使用 "git rm --cached <file>..." 撤出暂存区)
#
#       新文件:    123.txt
#

 将暂行区的文件提交上去:

[root@localhost git_data]# git commit -m "add 123.txt"

*** Please tell me who you are.

Run

  git config --global user.email "you@example.com"
  git config --global user.name "Your Name"

to set your account's default identity.
Omit --global to set the identity only in this repository.

fatal: unable to auto-detect email address (got 'root@localhost.(none)')

 由上面知道需要将开发的姓名和邮箱配置上去才能使用

[root@localhost git_data]# git config --global user.name "nsh"
[root@localhost git_data]#  git config --global user.email "nsh@example.com"
[root@localhost git_data]# git config --global color.ui true #设置语法高亮
[root@localhost git_data]# git config --list  查看配置
user.name=nsh
user.email=nsh@example.com
color.ui=true
core.repositoryformatversion=0
core.filemode=true
core.bare=false
core.logallrefupdates=true

查看配置信息:

[root@localhost git_data]# git config
用法:git config [选项]

配置文件位置
    --global              使用全局配置文件
    --system              使用系统级配置文件
    --local               使用版本库级配置文件
    -f, --file <文件>     使用指定的配置文件
    --blob <blob-id>      read config from given blob object

操作
    --get                 获取值:name [value-regex]
    --get-all             获得所有的值:key [value-regex]
    --get-regexp          根据正则表达式获得值:name-regex [value-regex]
    --replace-all         替换所有匹配的变量:name value [value_regex]
    --add                 添加一个新的变量:name value
    --unset               删除一个变量:name [value-regex]
    --unset-all           删除所有匹配项:name [value-regex]
    --rename-section      重命名小节:old-name new-name
    --remove-section      删除一个小节:name
    -l, --list            列出所有
    -e, --edit            打开一个编辑器
    --get-color <slot>    找到配置的颜色:[默认]
    --get-colorbool <slot>
                          找到颜色设置:[stdout-is-tty]

类型
    --bool                值是 "true" 或 "false"
    --int                 值是十进制数
    --bool-or-int         值是 --bool or --int
    --path                值是一个路径(文件或目录名)

其它
    -z, --null            终止值是NUL字节
    --includes            查询时参照 include 指令递归查找

 此时对项目代码进行提交

[root@localhost git_data]# git commit -m "add 123.txt"
[master(根提交) 93ce473] add 123.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 123.txt

  

删除代码

避免花里胡哨的删除

1:

[root@localhost git_data]# touch 123
[root@localhost git_data]# git add .
[root@localhost git_data]# git rm -rf 123
rm '123'
[root@localhost git_data]# git status
# 位于分支 master
无文件要提交,干净的工作区
[root@localhost git_data]# ll
总用量 0

  2:

[root@localhost git_data]# touch a
[root@localhost git_data]# git add .
[root@localhost git_data]# git commit -m "a"
[master 63e4a55] a
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 a
[root@localhost git_data]# git rm -rf a
rm 'a'
[root@localhost git_data]# git status
# 位于分支 master
# 要提交的变更:
#   (使用 "git reset HEAD <file>..." 撤出暂存区)
#
#       删除:      a
#
[root@localhost git_data]# git commit -am "del a"
[master 6d66750] del a
 1 file changed, 0 insertions(+), 0 deletions(-)
 delete mode 100644 a
[root@localhost git_data]# git status
# 位于分支 master
无文件要提交,干净的工作区

 改名:

[root@localhost git_data]# touch 123
[root@localhost git_data]# touch qweer
[root@localhost git_data]# git add .
[root@localhost git_data]# git commit -am "add all"
[master 591a1eb] del all
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 123
 create mode 100644 qweer
[root@localhost git_data]# git status
# 位于分支 master
无文件要提交,干净的工作区
[root@localhost git_data]# ll
总用量 0
-rw-r--r--. 1 root root 0 4月  20 16:53 123
-rw-r--r--. 1 root root 0 4月  20 16:53 qweer
[root@localhost git_data]# git mv 123 haha
[root@localhost git_data]# git status
# 位于分支 master
# 要提交的变更:
#   (使用 "git reset HEAD <file>..." 撤出暂存区)
#
#       重命名:    123 -> haha
#
[root@localhost git_data]# git commit -am "mv 123 haha"
[master 361b07e] mv 123 haha
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename 123 => haha (100%)
[root@localhost git_data]# git status
# 位于分支 master
无文件要提交,干净的工作区
[root@localhost git_data]# ll
总用量 0
-rw-r--r--. 1 root root 0 4月  20 16:53 haha
-rw-r--r--. 1 root root 0 4月  20 16:53 qweer

 避免花里胡哨

[root@localhost git_data]# touch 123
[root@localhost git_data]# git add .
[root@localhost git_data]# git commit -am "add all"
{root@localhost git_data]# git mv 123 haha
[root@localhost git_data]# git commit -am "mv 123 haha"

暂存区覆盖工作目录内容

[root@localhost git_data]# echo 111 > haha
[root@localhost git_data]# cat haha
111
[root@localhost git_data]# git status
# 位于分支 master
# 尚未暂存以备提交的变更:
#   (使用 "git add <file>..." 更新要提交的内容)
#   (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
#       修改:      haha
#
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
[root@localhost git_data]# git checkout -- haha
[root@localhost git_data]# cat haha

 git  diff对比目录区、暂存区、本地仓库文件改动后的不同

[root@localhost git_data]# echo 123456 > haha
[root@localhost git_data]# cat haha
123456
[root@localhost git_data]# git diff
diff --git a/haha b/haha
index 58c9bdf..9f358a4 100644
--- a/haha
+++ b/haha
@@ -1 +1 @@
-111
+123456
[root@localhost git_data]# git diff --cached
[root@localhost git_data]# git add .
[root@localhost git_data]# git diff
[root@localhost git_data]# git diff --cached
diff --git a/haha b/haha
index 58c9bdf..9f358a4 100644
--- a/haha
+++ b/haha
@@ -1 +1 @@
-111
+123456
[root@localhost git_data]# git commit -am "add all"
[master 54ce921] add all
 1 file changed, 1 insertion(+), 1 deletion(-)
[root@localhost git_data]# git diff
[root@localhost git_data]# git diff --cached
[root@localhost git_data]#

git   log      # 查看日志信息

[root@localhost git_data]# git log
commit 54ce921cbe44c4c9c9de710978ff71339990f655
Author: nsh <nsh@mail.com>
Date:   Sat Apr 20 17:16:47 2019 +0800

    add all

commit b72939161ede5f85558b0d3057a37670ca31c736
Author: nsh <nsh@mail.com>
Date:   Sat Apr 20 17:15:02 2019 +0800
。。。。。。

[root@localhost git_data]# git log --oneline
54ce921 add all
b729391 add all
361b07e mv 123 haha
591a1eb del all
6d66750 del a
63e4a55 a
c282f44 del
d3f42b7 add all

[root@localhost git_data]# git log --oneline -p -1 -p显示具体行数 -1显示最近一行提交的具体信息
54ce921 add all
diff --git a/haha b/haha
index 58c9bdf..9f358a4 100644
--- a/haha
+++ b/haha
@@ -1 +1 @@
-111
+123456
代码回滚:
[root@localhost git_data]# git reset --hard 361b07e
HEAD 现在位于 361b07e mv 123 haha
[root@localhost git_data]# ll
总用量 0
-rw-r--r--. 1 root root 0 4月  20 17:23 haha
-rw-r--r--. 1 root root 0 4月  20 16:53 qweer
[root@localhost git_data]# git log --oneline
361b07e mv 123 haha
591a1eb del all
6d66750 del a
63e4a55 a
c282f44 del
git
查看所有的历史提交
[root@localhost git_data]# git reflog
361b07e HEAD@{0}: reset: moving to 361b07e
54ce921 HEAD@{1}: commit: add all
b729391 HEAD@{2}: commit: add all
361b07e HEAD@{3}: commit: mv 123 haha
591a1eb HEAD@{4}: commit: del all
6d66750 HEAD@{5}: commit: del a
63e4a55 HEAD@{6}: commit: a
c282f44 HEAD@{7}: commit: del
d3f42b7 HEAD@{8}: commit (initial): add all
查看HEAD指针具体指向那个版本
[root@localhost git_data]# git log --oneline --decorate
361b07e (HEAD, master) mv 123 haha
591a1eb del all
6d66750 del a
63e4a55 a
c282f44 del

 git分支-代码合并 

两种创建分支的命令
一:
[root@localhost git_data]# git branch zhangsan
[root@localhost git_data]# git checkout zhangsan
切换到分支 'zhangsan'
[root@localhost git_data]# git branch
  master
* zhangsan
二:
[root@localhost git_data]# git branch
* master
[root@localhost git_data]# git checkout -b nsh
切换到一个新分支 'nsh'
[root@localhost git_data]# git branch
  master
* nsh
删除分支
[root@localhost git_data]# git branch -d nsh
已删除分支 nsh(曾为 54ce921)。
[root@localhost git_data]# git branch
  master

查看指针的指向

[root@localhost git_data]# touch test
[root@localhost git_data]# git add .
[root@localhost git_data]# git commit -am "add test"
[master 76911df] add test
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test
[root@localhost git_data]# git log --oneline --decorate
76911df (HEAD, master) add test
23a2218 add test
54ce921 add all
b729391 add all
361b07e mv 123 haha
591a1eb del all
6d66750 del a
63e4a55 a
c282f44 del
d3f42b7 add all
[root@localhost git_data]# touch test-page
[root@localhost git_data]# git add .
[root@localhost git_data]# git commit -am "add test-page"
[master dba91a4] add test-page
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test-page
[root@localhost git_data]# git log --oneline --decorate
dba91a4 (HEAD, master) add test-page
76911df add test
23a2218 add test
54ce921 add all
b729391 add all
361b07e mv 123 haha
591a1eb del all
6d66750 del a
63e4a55 a
c282f44 del
d3f42b7 add all

 后续有新的内容随时添加..............................

GIT的初级使用的更多相关文章

  1. <初级程序员> git 的初级使用

    作为程序员,Git 是一个很好的代码管理工具.Git 是一个版本控制系统,主要的作用就是记录代码的修改过程,有效的追踪文件的变化.当代码出现错误的时候可以很容易的恢复到之前的状态,不管对于个人开发还是 ...

  2. git/github初级运用自如(zz)

    ----//git/github环境配置 一 .  github上创建立一个项目 用户登录后系统,在github首页,点击页面右下角“New Repository” 填写项目信息: project n ...

  3. 【转载】git/github初级运用自如

    之前了解过github,并在上面看了一些项目的源代码,于是自己也在github上创建了账户,希望以后有机会也把自己的项目托管在上面去.但是前提你要先了解git/github,下面的内容是从我的好基友虫 ...

  4. git/github初级运用自如 (转)

    三 . 设置用户信息 这一步不是很重要,貌似不设置也行,但github官方步骤中有,所以这里也提一下. 在git中设置用户名,邮箱 $ git config --global user.name &q ...

  5. 开发人员的必备工具Git(初级)

    Git是什么 Git是目前世界上最先进的分布式版本控制系统. 这个软件用起来就应该像这个样子,能记录每次文件的改动: 举个栗子 :       版本 用户 说明 日期 1 张三 删除了软件服务条款5 ...

  6. git/github初级运用自如(转自:虫师)

    注:本文来源于 虫师博客(http://www.cnblogs.com/fnng/archive/2012/01/07/2315685.html) ,内容详尽,真实有用. 另:发一个github使用教 ...

  7. git/github初级使用

    1.常见的github 国内最流行的php开发框架(thinkphp):https://github.com/top-think/thinkphp 全球最流行的php框架(laravel):https ...

  8. git命令初级

    git是开源的分布式版本控制系统,分布式主要区别于集中式代表CVS(Concurrent Version System,遵从C/S架构,同步比较笨拙.)和SVN(Subversion),linux开发 ...

  9. git/github初级运用自如 (good)

    三 . 设置用户信息 这一步不是很重要,貌似不设置也行,但github官方步骤中有,所以这里也提一下. 在git中设置用户名,邮箱 $ git config --global user.name &q ...

随机推荐

  1. openwrt添加自动启动项

    在/etc/init.d下添加文件my-plugin #!/bin/sh /etc/rc.common # /etc/init.d/my-plugin start() { sh /root/useri ...

  2. 七、PyQT5控件——QSlider,QSpinBox

    一.Qslider QSlider是一个滑动条,可以设置成水平或垂直放置.最常用的方法允许用户在某一范围内互动该滑块,并将滑块的位置转换成一个整数值(int类型),这种方式可以在某一个范围内平顺的变动 ...

  3. 用angular制作简单的选项卡

    现在angular变得挺火热的,自己也去简单的学习了一下,学了几天下来觉得angular果然好用,但是现在只是停留在比较浅的层面上,要想学好angular还是得下一番功夫的.学了一点新知识就想和大家分 ...

  4. opencv的安装

    网上搜了好多文章安装opencv3.2.0都未能成功,写的也个不相同,后来找到了opencv官网的教程,看了后才发现,这上面才是最详细的. 于是按照opencv官网教程安装,安装的一半就中断了.经过苦 ...

  5. truncate和delete命令的优缺点和原理解析,适用场合

    1.相同点:truncate和delete只删除数据不删除表的结构2.不同点:truncate.drop是数据库定义语言,操作立即生效,元数据不会放到rollback segement中,不能回滚,操 ...

  6. C#中一些关联名词的含义归纳

    形参/实参:定义一个方法,方法中需要传输的参数为形参,实际调用方法时候传入的参数为实参. 方法/函数:两个没有本质上的区别,都是指类中的一些操作. 委托/事件:委托(delegate)是存有对某个方法 ...

  7. JS中的同步和异步

    javascript语言是一门“单线程”的语言,不像java语言,类继承Thread再来个thread.start就可以开辟一个线程,所以,javascript就像一条流水线,仅仅是一条流水线而已,要 ...

  8. Python类——面向对象

    一.有关面向对象的一些知识 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” ...

  9. Java整理

    基础篇 1.  面向对象 2.  Java平台 3.  值传递 4.  封装.继承.多态 5.  基本数据类型 6.  Java 装箱和拆箱 7.  String 8.  Java关键字 9.  集合 ...

  10. LSTM(Long Short Term Memory)

    长时依赖是这样的一个问题,当预测点与依赖的相关信息距离比较远的时候,就难以学到该相关信息.例如在句子”我出生在法国,……,我会说法语“中,若要预测末尾”法语“,我们需要用到上下文”法国“.理论上,递归 ...