Git学习笔记一--创建版本库、添加文件、提交文件等
来源:互联网 发布:网络的商业价值有哪些 编辑:程序博客网 时间:2024/06/02 05:13
http://www.cnblogs.com/lixiaolun/p/4360732.html
Git,是Linus花了两周时间用C写的一个分布式版本控制系统。牛该怎么定义?
其实,很多人都不care谁写了Git,只在乎它是免费而且好用的!So do I!
下面开始我们的学习:
1.Git安装(略)。
2.创建版本库
首先,选择一个合适的地方(我选择了D盘,我的电脑是Win 7),常见一个空目录:
$ mkdir Git
$ cd Git
$ pwd
//显示当前的路径
/d/Git
注:Windows下,路径名不要包含中文,因为Git对中文支持不给力!
第二步,通过git init
命令把这个目录变成Git可以管理的仓库:
$ git init
Initialized empty Git repository in /d/Git/.git/
这样就创建了你的Git仓库。
接下来,我们上传一个文件到Git。编辑一个readme.txt文件,内容如下:
Git is a distributed version control system.
Git is free software distributed under the GPL.
Git has a mutable index called stage.
Git tracks changes of files.
将其放到/d/Git目录下,因为这是一个Git仓库,放到其他地方Git再厉害也找不到这个文件。
将一个文件放到Git仓库需要两步:
(1)使用git add将文件添加到仓库:
$ git add readme.txt
(2)使用git commit将文件提交到仓库:
git commit -m
"wrote a readme file"
[master 48b9a84] wrote a readme file
1
file changed,
2
insertions(+)
注:git commit
命令,-m
后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。
commit可以一次提交多个文件:
$ git add file1.txt
$ git add file2.txt
$ git add file3.txt
$ git commit -m
"add 3 files."
3.Git的命令很多,下面再学习几个吧!
继续修改readme.txt文件:
Git is a distributed version control system.
Git is free software.
git status
命令看看结果:
$ git status
# On branch master
# 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: readme.txt
#
no changes added to commit (use
"git add"
and/or
"git commit -a"
)
git status查看仓库当前的状态,上面的命令告诉我们,readme.txt被修改过了,但还没有准备提交的修改。
虽然Git告诉我们readme.txt被修改了,但如果能看看具体修改了什么内容,自然是很好的。比如你休假两周从国外回来,第一天上班时,已经记不清上次怎么修改的readme.txt,所以,需要用git diff
这个命令看看:
$ git diff readme.txt
diff --git a/readme.txt b/readme.txt
index 46d49bf..9247db6
100644
--- a/readme.txt
+++ b/readme.txt
@@ -
1
,
2
+
1
,
2
@@
-Git is a version control system.
+Git is a distributed version control system.
Git is free software.
git diff查看不同!
在工作中,我们可能提交了几千个文件,如果想看历史记录,可以使用git log命令:
$ git log
commit 3628164fb26d48395383f8f31179f24e0882e1e0
Author: Michael Liao <askxuefeng
@gmail
.com>
Date: Tue Aug
20
15
:
11
:
49
2013
+
0800
append GPL
commit ea34578d5496d7dd233c827ed32a8cd576c5ee85
Author: Michael Liao <askxuefeng
@gmail
.com>
Date: Tue Aug
20
14
:
53
:
12
2013
+
0800
add distributed
commit cb926e7ea50ad11b8f9e909c05226233bf755030
Author: Michael Liao <askxuefeng
@gmail
.com>
Date: Mon Aug
19
17
:
51
:
55
2013
+
0800
wrote a readme file<br>………………………………………………………………………………<br>………………………………………………………………………………
commit 0f71dba115d8830212fd1736a02a077ce2e91699
Author: lixiaolun <303041859@qq.com>
Date: Thu Jan 15 22:06:05 2015 +0800
wrote a readme file
(END)
注:最后你可能会碰到这个(END),此后你怎么点都没有用。那么现在你要输入:wq或:q退出。这个命令同linux指令。
git log
命令显示从最近到最远的提交日志。如果嫌输出信息太多,看得眼花缭乱的,可以试试加上
--pretty=oneline
参数:
$ git log --pretty=oneline
fae7920797cbe9057e7e5ced1fdc79d1eb592758 commit a file readme
33cff68fd77dcbfdb8644a8d3f1c34175830b1a6 text1.txt commit
48b9a84010813eecb1e3acca555d1b704c9d5930 wrote a readme file
2d874d572e805c1825200458a8a8aa9e55429d8f
2015
-
1
-
30
upload
86edb2f2f658578f993532c83c5c368d2c4a7c4c local_gitgub
7d3197611468b3d7dd6b861829e19de626c22bc8 remove text1.txt
d9ee12aeca6cacf25f6b02095d03d5a9f03d3c5e remove text.txt
d79f7ec6a470f0efb1afee1accb28fae3ef3a995 add test.txt
24a93f3894fec142cbc11bc508f2407635380c81 git tracks changes
c22b22edea6b0f9fff3c4d73b3351c49e966a85e add
3
text.txt
57c62b9d4e94c19a9484ca6c6c6e84f18965b41a understand how stage
f2bbf87ef050bb70d98390cf8ca1680ed0dff297 modify reamde.txt
fe829f988f43647933edb35f347171c54187af4a add a
new
word distr
0f71dba115d8830212fd1736a02a077ce2e91699 wrote a readme file
友情提示:你看到的一大串类似3628164...882e1e0
的是commit id
(版本号),和SVN不一样,Git的commit id
不是1,2,3……递增的数字,而是一个SHA1计算出来的一个非常大的数字,用十六进制表示。
时光穿梭之版本回退!!
如果你提交的一个文件,发现还不如你你上一个版本好,赶紧回退!怎么做呢?
首先,Git必须知道当前版本是哪个版本,在Git中,用HEAD
表示当前版本,也就是最新的提交3628164...882e1e0
(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^
,上上一个版本就是HEAD^^
,当然往上100个版本写100个^
比较容易数不过来,所以写成HEAD~100
。
回退到上一个版本的命令git reset:
$ git reset --hard HEAD^
--hard
参数有啥意义?这个后面再讲,现在你先放心使用。
查看文件命令cat readme.txt:
$ cat readme.txt
Git is a distributed version control system.
Git is free software distributed under the GPL.
git reflog记录了每一次命令:
$ git reflog
ea34578 HEAD@{
0
}: reset: moving to HEAD^
3628164
HEAD@{
1
}: commit: append GPL
ea34578 HEAD@{
2
}: commit: add distributed
cb926e7 HEAD@{
3
}: commit (initial): wrote a readme file
前面的数字是commit id。知道commit id可以回退上一次执行的命令,回退命令为git reset --hard <commit id>:
$ git reset --hard
3628164
感谢廖叫兽:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/00137402760310626208b4f695940a49e5348b689d095fc000
- Git学习笔记一--创建版本库、添加文件、提交文件等
- Git学习(二)---- 创建版本库、添加文件
- Git之创建版本库&提交文件&相关命令
- Git-2、创建版本库并添加文件
- 【Github学习笔记】安装git,创建库,添加远程仓库,添加删除文件
- git学习笔记(文件的提交)
- Git学习笔记(一)---安装与创建版本库
- git学习-提交文件
- 【Git学习笔记】对已经添加到仓库的文件修改后再次提交到仓库
- Git 学习笔记(简介、安装、添加提交文件、查看状态及更改信息)
- git学习笔记 -- day02 管理文件版本
- git 创建仓库,提交文件
- Git 添加文件到版本库
- git忽略提交某些文件到git版本库中
- Git 学习<一>创建版本库
- 【Git学习笔记】创建版本库
- git学习笔记--创建版本库
- Git使用教程2:版本库的创建和添加文件
- JAVA C# C/C++之比较学:参数传递
- Android属性动画完全解析(下),Interpolator和ViewPropertyAnimator的用法
- lua 中点号与冒号的区别
- LoadRunner中数组的用法
- Android学习资料
- Git学习笔记一--创建版本库、添加文件、提交文件等
- Git服务器环境搭建
- ssh-keygen 中文手册
- 2D开发SpaceShooterGame,飞机移动出现倾斜
- AspectJ切入点语法详解
- Linux进程优先级的调整方法
- prim 算法优化
- MySQL学习笔记2-System administration(Installing MySQL-5.6.27)
- Json格式数据转换Map