git使用介绍
git的简单介绍
git是一类分布式版本控制系统, 客户端并不只提取最新版本的文件快照,而是把代码仓库完整地镜像下来。这么一来,任何一处协同工作用的服务器发生故障,事后都可以用任何一个镜像出来的本地仓库恢复。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份
运行git前的配置
1 2 3 4 5 6 7 8 9 |
[root@localhost /git]# git config --global user.name "fei" [root@localhost /git]# git config --global user.email fei@devilf.cc [root@localhost /git]# git config --list user.name=fei user.email=fei@devilf.cc core.repositoryformatversion=0 core.filemode=true core.bare=false core.logallrefupdates=true |
---|
1、首先是在一个目录中初始化仓库
1 2 |
mkdir /git git init |
---|
#查看会有一个.git的隐藏目录出现
2、从现有仓库克隆
<code>git clone </code><a href="git://git.kernel.org/pub/scm/git/git.git"><code>git://git.kernel.org/pub/scm/git/git.git</code></a>
如果是想改名的话,可以
<code>git clone </code><a href="git://git.kernel.org/pub/scm/git/git.git"><code>git://git.kernel.org/pub/scm/git/git.git</code></a><code> chenfei</code>
3、检查当前文件状态
1 2 3 4 5 6 7 8 9 10 11 12 |
# git status On branch master No commits yet Untracked files: (use "git add <file>..." to include in what will be committed) chenfei/ nothing added to commit but untracked files present (use "git add" to track) |
---|
执行此命令会知道处于哪个分支,如果当前分支下有处于未跟踪的新文件,也会被列出,像上面的提示就是 git/ 这个目录下的文件是处于未跟踪状态的。
4、跟踪新的文件
<code>git add chenfei</code>
再次查看状态,会发现该目录已经处于跟踪状态,并且已经被放在暂存区中去了
<code># git status</code>
On branch master
No commits yet
Changes to be committed:
(use “git rm –cached <file>…" to unstage)
new file: chenfei
Untracked files:
(use “git add <file>…" to include in what will be committed)
install.log
5、忽略某些文件
因为有时候有些文件是不需要纳入版本控制的,例如一些文件的副本文件等,这个时候就需要使用 .gitignore来编写略过哪些文件
# 此为注释 – 将被 Git 忽略
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# 忽略 doc/ 目录下所有扩展名为 txt 的文件
doc/**/*.txt
6、查看尚未加入暂存区的文件都修改了哪些内容
<code>git diff install.log</code>
<code># git diff install.log</code>
diff –git a/install.log b/install.log
index 7fcbbba..4974cc6 100644
— a/install.log
+++ b/install.log
@@ -4,3 +4,4 @@
#add str two
#add num and str 1 two
+#del num adn str
7、提交更新
<code>git commit</code>
<code># git commit -m "open source" chenfei</code>
[master a19a408] open source
1 file changed, 1 insertion(+)
create mode 160000 chenfei
8、移除文件
从仓库中删除,但本地目录中的文件不删除,也就是只从暂存区中删除,
<code>git rm --cached install.log</code>
<code># git rm --cached install.log</code>
rm ‘install.log’
[root@localhost /git]# ll
total 24
drwxr-xr-x. 25 root root 20480 Jul 26 16:49 chenfei
-rw-r–r–. 1 root root 80 Jul 26 17:01 install.log
[root@localhost /git]# git status
On branch master
Changes to be committed:
(use “git reset HEAD <file>…" to unstage)
deleted: install.log
Untracked files:
(use “git add <file>…" to include in what will be committed)
install.log
可以看到有明显的变化
9、移动文件
<code>git mv </code>
<code># git mv chenfei cf</code>
# git status
On branch master
Changes to be committed:
(use “git reset HEAD <file>…" to unstage)
renamed: chenfei -> cf
deleted: install.log
Untracked files:
(use “git add <file>…" to include in what will be committed)
install.log
执行git mv命令实际上是执行了三条命令
<code>mv chenfei cf</code>
<code>git rm chenfei</code>
<code>git add cf</code>
10、查看历史
<code>git log</code>
<code># git log</code>
commit a19a408f42f4e99a84929252d4b939dbc4fb3300 (HEAD -> master)
Author: fei <<a href="mailto:fei@devilf.cc">fei@devilf.cc</a>>
Date: Thu Jul 26 17:09:01 2018 +0800
open source
commit d70d0f47540527f29a23db665d76224bf4e12835
Author: root <<a href="mailto:root@localhost.localdomain">root@localhost.localdomain</a>>
Date: Thu Jul 26 17:04:23 2018 +0800
first cm
这样会按照时间列出所有的更新,但是如果有非常多的提交的话,我们可以显示最近的几次几次提交
<code>git log -p -3</code>
这样可以显示最近的三次提交
其他的一些参数:
#仅显示简要的增改行数统计
<code>git log --stat</code>
11、撤销操作
1)假如我们在暂存区放了一个文件后,发现加错了,这个时候我们需要移除放在暂存区的文件,方法:
<code># git reset HEAD test.sh</code>
Unstaged changes after reset:
M test.sh
[root@localhost /git]# git status
On branch master
Changes to be committed:
(use “git reset HEAD <file>…" to unstage)
renamed: chenfei -> cf
Changes not staged for commit:
(use “git add <file>…" to update what will be committed)
(use “git checkout — <file>…" to discard changes in working directory)
modified: test.sh
现在暂存区中已经不存在该文件了。
2)取消对文件的修改
如果觉得对某个文件的修改没有必要,则需要取消修改,方法:
<code>git checkout -- test.sh</code>
- javaScript实现归并排序
- js粘贴事件paste简单解析及遇到的坑
- 学习zepto.js(对象方法)[6]
- Javascript 装饰器极速指南
- daterangepicker日历插件使用参数注意问题
- 学习zepto.js(对象方法)[5]
- js 停止事件冒泡 阻止浏览器的默认行为
- vue-cli生成的项目配置开发和生产环境不同的接口
- 【52ABP实战教程】0.1-- Devops如何用VSTS持续集成到Github仓库!
- 学习zepto.js(对象方法)[4]
- 事件绑定的几种常见方式
- vue的iview列表table render函数设置DOM属性值的方法
- js焦点轮播图
- vue父组件中获取子组件中的数据
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法