GIT的初级使用
安装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的初级使用的更多相关文章
- <初级程序员> git 的初级使用
作为程序员,Git 是一个很好的代码管理工具.Git 是一个版本控制系统,主要的作用就是记录代码的修改过程,有效的追踪文件的变化.当代码出现错误的时候可以很容易的恢复到之前的状态,不管对于个人开发还是 ...
- git/github初级运用自如(zz)
----//git/github环境配置 一 . github上创建立一个项目 用户登录后系统,在github首页,点击页面右下角“New Repository” 填写项目信息: project n ...
- 【转载】git/github初级运用自如
之前了解过github,并在上面看了一些项目的源代码,于是自己也在github上创建了账户,希望以后有机会也把自己的项目托管在上面去.但是前提你要先了解git/github,下面的内容是从我的好基友虫 ...
- git/github初级运用自如 (转)
三 . 设置用户信息 这一步不是很重要,貌似不设置也行,但github官方步骤中有,所以这里也提一下. 在git中设置用户名,邮箱 $ git config --global user.name &q ...
- 开发人员的必备工具Git(初级)
Git是什么 Git是目前世界上最先进的分布式版本控制系统. 这个软件用起来就应该像这个样子,能记录每次文件的改动: 举个栗子 : 版本 用户 说明 日期 1 张三 删除了软件服务条款5 ...
- git/github初级运用自如(转自:虫师)
注:本文来源于 虫师博客(http://www.cnblogs.com/fnng/archive/2012/01/07/2315685.html) ,内容详尽,真实有用. 另:发一个github使用教 ...
- git/github初级使用
1.常见的github 国内最流行的php开发框架(thinkphp):https://github.com/top-think/thinkphp 全球最流行的php框架(laravel):https ...
- git命令初级
git是开源的分布式版本控制系统,分布式主要区别于集中式代表CVS(Concurrent Version System,遵从C/S架构,同步比较笨拙.)和SVN(Subversion),linux开发 ...
- git/github初级运用自如 (good)
三 . 设置用户信息 这一步不是很重要,貌似不设置也行,但github官方步骤中有,所以这里也提一下. 在git中设置用户名,邮箱 $ git config --global user.name &q ...
随机推荐
- weblogic中配置数据源
Weblogic数据源配置 一.配置数据源 1.点击数据源,进入数据源配置页面,点击新建后选择一般数据源 2.输入名称和jndi名称(两个输入一样即可)后点击下一步 3.选择驱动后点击下一步 4.输入 ...
- Java 调用执行其他语言的程序
以 Java 调用 Python 为例 1. 使用 Runtime 类 该方式简单,但是增加了 Java 对python 的依赖,需要事先安装python,及python程序依赖的第三方库 Runti ...
- 【java】:多线程面试题
经常面试的时候,让写各种乱七八糟的多线程面试题,收集了很多,有些还是挺好玩的. 1.编写程序实现,子线程循环10次,接着主线程循环20次,接着再子线程循环10次,主线程循环20次,如此反复,循环50次 ...
- 字符串API练习三则
(1)按照Ascii码字典的顺序排列字符串.核心API:int compareTo(String),若大于则返回1,小于返回-1,等于返回0. class StringArray { static v ...
- css摘要
由于需要,今天花三个小时了解一下css,在此记录一些摘要: 参考w3school 1. 当同一个 HTML 元素被不止一个样式定义时,会使用哪个样式呢? 一般而言,所有的样式会根据下面的规则层叠于一个 ...
- c++中段自评
不知不觉,学期已过一大半.也是时候对自己的编程水平重新进行一次评估了. 1.通过最近的中段测试和acm新手赛的洗礼,以及之前的课前预习.课中学习.和课后作业的锻炼,我逐渐体会到编程语言的魅力同时也理解 ...
- k8s1.13.3安装istio(helm方式)
官方文档:https://istio.io/zh/docs/setup/kubernetes/install/helm/ 一.环境信息 centos7 k8s1.13.3 主机名 ip cpu ram ...
- metasploit生成payload的格式
转自https://www.cnblogs.com/zlgxzswjy/p/6881904.html Often one of the most useful (and to the beginner ...
- 软件光栅器实现(四、OBJ文件加载)
本节介绍软件光栅器的OBJ和MTL文件加载,转载请注明出处. 在管线的应用程序阶段,我们需要设置光栅器所渲染的模型数据.这些模型数据包括模型顶点的坐标.纹理.法线和材质等等,可以由我们手动编写,也可以 ...
- 20155205 郝博雅 Exp2 后门原理与实践
20155205 郝博雅 Exp2 后门原理与实践 一.基础问题回答 后门(木马) 专用程序 投放 隐藏(免杀) 启动(自启动.绑定) (1)例举你能想到的一个后门进入到你系统中的可能方式? 答:上学 ...