[Git] 代码管理器学习

2019-05-05  本文已影响0人  happyxhz

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学习

上一篇 下一篇

猜你喜欢

热点阅读