首先安装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管理这个目录的所有文件。
$ cd D:\git-repository
$ mkdir learn_git
$ git init
Initialized empty Git repository in D:/git-repository/learn_git/.git/
这样仓库就建好了,是一个empty的仓库,并且多了一个.git目录,它是用来管理跟踪版本库的,没事别手残去修改。
$ git add test.txt
$ 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个文件"
$ 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文件被改变了,但是没有提交改变。
$ 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
$ 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^