git学习(一)创建本地仓库,提交文件,版本回退

首先安装git,然后启动。
然后配置一个全局的用户名和邮箱

$ git config --global user.name "名字"
$ git config --global user.email "邮箱"

用了–config这个参数,表示所有的仓库都使用这个配置,如果想对某个特定仓库进行设置,则可以把–config去掉

$ git config user.name ‘名字’ 
$ git config user.email ‘邮箱’

可以使用git config --list(2个“-”) 来查看当前仓库的配置。

创建版本库

版本库就是仓库,通俗的理解就是一个目录,git管理这个目录的所有文件。

  1. 选择一个仓库的位置(我选择的是d盘下的一个目录)
$ cd D:\git-repository
  1. 创建一个目录
$ mkdir learn_git
  1. 查看当前位置,使用pwd命令
    在这里插入图片描述
    我使用的是windows系统,为了不出意外,目录名字中不要包含汉字。
  2. 将这个目录变成git能管理的仓库
$ git init
Initialized empty Git repository in D:/git-repository/learn_git/.git/

这样仓库就建好了,是一个empty的仓库,并且多了一个.git目录,它是用来管理跟踪版本库的,没事别手残去修改。

把文件提交到仓库

  1. 创建一个文件,然后一定把它放在仓库目录下(子目录也可以)
  2. 将文件添加到仓库
$ git add test.txt
  1. 将文件提交
$ git commit -m "提交test.txt文件"
[master (root-commit) 0344ec9] 提交test.txt文件
 1 file changed, 1 insertion(+)
 create mode 100644 test.txt

-m后面相当于备注,给本次提交添加说明。
如果每个文件都要先add后commit 那就太麻烦了,所以你可以一次add多个文件,然后一次性commit

$ git add test1.txt
$ git add test2.txt
$ git add test3.txt
$ git commit -m "添加3个文件"

查看仓库状态

  1. 修改我们刚才提交的文件内容,然后运行git status命令
$ git status
On branch master
Changes not staged for commit:
  (use "git add ..." to update what will be committed)
  (use "git restore ..." to discard changes in working directory)
        modified:   test.txt

可以看到test.txt文件被改变了,但是没有提交改变。

  1. 查看具体修改的内容,git diff (diff是difference)
$ git diff
diff --git a/test.txt b/test.txt
index efcf964..eca4c9c 100644
--- a/test.txt
+++ b/test.txt
@@ -1 +1,2 @@
-哈哈哈哈
\ No newline at end of file
+哈哈哈哈
+噢噢噢噢
\ No newline at end of file
  1. 然后将文件添加提交,再次查看状态
$ git status
On branch master
nothing to commit, working tree clean

提示没有需要提交的。

如果你的文件很多,你想知道自己修改了什么,可以git log 查看历史记录

$ git log
commit c387e42a5944b24fd44ba3173dca5e484e35fcb1
Author: user <xxxx@163.com>
Date:   Sat Jun 6 22:26:24 2020 +0800

    提交修改

commit 0344ec9d91a986628bc22d73832b55412e7b82fc
Author: user <xxxx@163.com>
Date:   Sat Jun 6 22:21:58 2020 +0800

    提交test.txt文件

版本回退

head指向的版本就是当前版本,使用git reset --hard HEAD^回退到上一个版本,上上一个版本就是HEAD^^,如果回退n个版本那写n个^ 很麻烦,可以写成 head~n

$ git reset --hard head^
HEAD is now at c387e42 提交修改

如果想回到之前的版本,那么可以在后面添加对应的commit id

$ git reset --hard 106018a
HEAD is now at 106018a 提交mytest.txt文件
$ git log
commit 106018a50f8643e3aed892ca1c31ee8908350df5 (HEAD -> master)
Author:  user <xxxx@163.com>
Date:   Sat Jun 6 22:27:26 2020 +0800

    提交mytest.txt文件

commit c387e42a5944b24fd44ba3173dca5e484e35fcb1
Author:  user <xxxx@163.com>
Date:   Sat Jun 6 22:26:24 2020 +0800

    提交修改

commit 0344ec9d91a986628bc22d73832b55412e7b82fc
Author:  user <xxxx@163.com>
Date:   Sat Jun 6 22:21:58 2020 +0800

    提交test.txt文件

commit 后面的一大串就是它的id,当然你不需要写全,一般写前7位就够了,git会自己去找。
当你不知道版本的id时,可以使用git reflog,这里记录了你操作的历史命令。

$ git reflog
0344ec9 (HEAD -> master) HEAD@{0}: reset: moving to head~2
106018a HEAD@{1}: reset: moving to 106018a
0344ec9 (HEAD -> master) HEAD@{2}: reset: moving to head^^
106018a HEAD@{3}: reset: moving to 106018a
c387e42 HEAD@{4}: reset: moving to head^

你可能感兴趣的:(git)