Date:2019-05-05
Mood: 开工第一天,好像没有什么事诶!五月的生产任务还没下来可以学学玩玩,开熏。舟山的风景很好,推荐一下...但是需要提前安排好车票船票,不然被卡在集散中心也是很痛苦的。附一张白沙岛旅游在渔家傲拍摄的照片:
渔家傲.png
正文:
0. 初始设置
git config --global user.name "sue"
git config --global user.email "xxx@163.com"
1. 创建一个版本库
mkdir gittest
cd gittest
git init
git init这条命令讲该目录变成一个版本库(repository),输入完此命令收到以下提示:
Initialized empty Git repository in /mnt/fvg01vol8/project/hesy_test/gittest/.git/
2. 将文件添加到版本库
创建一个readme文档,然后使用如下命令,该命令执行完没有任何提示信息:
git add readme.txt
用命令git commit告诉git你做了啥:-m之后的信息是你本次提交的说明,以后将在此看到你的改动记录
git commit -m 'wrote a readme file'
提示信息:(一个文件被改动,插入了两行)
[master (root-commit) eaadf4e] wrote a readme file
1 file changed, 2 insertions(+)
create mode 100644 readme.txt
3. 修改文件
修改了readme文件后,用git status查看状态,用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 add readme.txt
git status
git commit -m "add distributed"
4. 查看记录
git log
git log --pretty=oneline
两条命令都是查看git的记录的,第一条显示的结果比较长,这里不展示了,而第二条将每次的git commit的记录列出(如下所示),主要为两列,第一列中的一长串是commit id(版本号),由SHA1计算所得
d80e93af7b44b2833c2f55a03aa9a9f8779c46fa append GPL
19e7a542df117d6f0705bcaf949d1ebabdf1eb70 add distributed
f62c5cd18b1ede8173ac70d2d8b9090d455cfa40 write a readme file
5. 版本之间互相切换*(真牛)
版本之间切换,主要命令"git reset",这项技能真厉害!!示例:
git reset --hard HEAD^
命令说明:HEAD可以理解为当前所在版本,HEAD则为前一个版本,HEAD^为上上一个版本,前一百个版本写成HEAD~100,键入完此命令后,你再cat查看文件,会发现变成了上一个版本。此时查看记录git log,会发现...后面修改的版本不见了。我擦,是不是慌的一匹?
$git log
commit 19e7a542df117d6f0705bcaf949d1ebabdf1eb70
Author: hesy <happyxhz@163.com>
Date: Sun May 5 10:59:42 2019 +0800
add distributed
commit f62c5cd18b1ede8173ac70d2d8b9090d455cfa40
Author: hesy <happyxhz@163.com>
Date: Sun May 5 10:37:25 2019 +0800
write a readme file
返回未来的版本,使用如下命令:--hard后面跟的是commit id的编号,不需要输入完整,会自动匹配。
git reset --hard d80e93
如果不记得commit id了,请使用如下命令git reflog,请自行测试,神奇的hin呐
6. 理解一下工作区和暂存区
个人理解是:git保存的是记录,而不是文件,你修改完了文件,如果没有git add,使用git status的时候会提示你文件没有提交,你使用git add提交后会存到暂存区(stage或index),但是没有输入git commit,下次修改后,使用git commit ,保存的是前一次修改的记录,即将暂存区的内容提交到当前分支(master,指向master的一个指针称为HEAD)。
7.撤销修改
使用命令git checkout -- file
详细参考:
gitcheckout.png
8.删除文件
如果是要删除,使用如下命令:
git rm readme.txt
git commit -m 'rm readme.txt'
如果是误删了,可以使用如下命令找回原文件,找回的是最后修改提交版的:
git checkout -- readme.txt
今天就更新到这里啦,以上信息是自己测试所得,详细请参考廖雪峰老师GIT学习








网友评论