首先安装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管理这个目录的所有文件。
- 选择一个仓库的位置(我选择的是d盘下的一个目录)
$ cd D:\git-repository
- 创建一个目录
$ mkdir learn_git
- 查看当前位置,使用pwd命令
我使用的是windows系统,为了不出意外,目录名字中不要包含汉字。 - 将这个目录变成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命令
$ git status
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: test.txt
可以看到test.txt文件被改变了,但是没有提交改变。
- 查看具体修改的内容,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
- 然后将文件添加提交,再次查看状态
$ 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^
转载:https://blog.csdn.net/weixin_43982698/article/details/106595073
查看评论