一:创建本地仓库:
1:进入目录 2:使用命令:git init

ubuntu@python:~$ cd Desktop/
ubuntu@python:~/Desktop$ ls
git_practice     PyMySQL-0.7.11-py2.py3-none-any.whl  stock_db.sql
navicat          python_test_1.sql                    课堂笔记-1-参考.sql
pycharm.desktop  redis                                终极复习
ubuntu@python:~/Desktop$ cd git_practice/
ubuntu@python:~/Desktop/git_practice$ git init
已初始化空的 Git 仓库于 /home/ubuntu/Desktop/git_practice/.git/
ubuntu@python:~/Desktop/git_practice$ ls -a
.  ..  .git

二:配置个人信息:

ubuntu@python:~/Desktop/git_practice$ git config user.name "renshanwen"
ubuntu@python:~/Desktop/git_practice$ git config user.email "1173714240@qq.com"

查看配置信息

ubuntu@python:~/Desktop/git_practice$ cd .git
ubuntu@python:~/Desktop/git_practice/.git$ ls -a
.  ..  branches  config  description  HEAD  hooks  info  objects  refs
ubuntu@python:~/Desktop/git_practice/.git$ cat config
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[user]
	name = renshanwen
	email = 1173714240@qq.com

三:新建文件,查看文件状态,将文件推送到暂存区,再次查看文件状态:
注意:没有到缓存区的文件是红色的,推送到缓存区文件是绿色的。

ubuntu@python:~/Desktop/git_practice/.git$ cd ../
ubuntu@python:~/Desktop/git_practice$ touch test.py
ubuntu@python:~/Desktop/git_practice$ ls
test.py
ubuntu@python:~/Desktop/git_practice$ git status
位于分支 master

尚无提交

未跟踪的文件:
  (使用 "git add <文件>..." 以包含要提交的内容)

	test.py

提交为空,但是存在尚未跟踪的文件(使用 "git add" 建立跟踪)
ubuntu@python:~/Desktop/git_practice$ git add .
ubuntu@python:~/Desktop/git_practice$ git status
位于分支 master

尚无提交

要提交的变更:
  (使用 "git rm --cached <文件>..." 以取消暂存)

	新文件:   test.py

ubuntu@python:~/Desktop/git_practice$ 

四:将暂存区文件提交到仓库,然后查看历史版本:

ubuntu@python:~/Desktop/git_practice$ git commit -m '这是任善文第一次提交到本地仓库'
[master (根提交) 46113db] 这是任善文第一次提交到本地仓库
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 test.py
ubuntu@python:~/Desktop/git_practice$ git log
commit 46113dbc4ebde6709ce0262384a5f65f3f89c0ab (HEAD -> master)
Author: renshanwen <1173714240@qq.com>
Date:   Mon Aug 24 17:17:52 2020 +0800

    这是任善文第一次提交到本地仓库

五:更改文件内容,然后再次提交到缓存,并且提交到仓库。再次查看历史版本。

ubuntu@python:~/Desktop/git_practice$ vim test.py 
ubuntu@python:~/Desktop/git_practice$ git add .
ubuntu@python:~/Desktop/git_practice$ git commit -m "这是任善文第二次提交到本地仓库"
[master 57ecff8] 这是任善文第二次提交到本地仓库
 1 file changed, 6 insertions(+)
ubuntu@python:~/Desktop/git_practice$ git log
commit 57ecff8643b8796b123a254a3fc31e053c3f8fb6 (HEAD -> master)
Author: renshanwen <1173714240@qq.com>
Date:   Mon Aug 24 17:23:13 2020 +0800

    这是任善文第二次提交到本地仓库

commit 46113dbc4ebde6709ce0262384a5f65f3f89c0ab
Author: renshanwen <1173714240@qq.com>
Date:   Mon Aug 24 17:17:52 2020 +0800

    这是任善文第一次提交到本地仓库

六:回退版本:回退到上个版本
1:第一种方式:
HEAD表示当前最新版本
HEAD^表示当前最新版本的前一个版本
HEAD^^表示当前最新版本的前两个版本,以此类推…
HEAD~1表示当前最新版本的前一个版本
HEAD~10表示当前最新版本的前10个版本,以此类推…

ubuntu@python:~/Desktop/git_practice$ git reset --hard HEAD^
HEAD 现在位于 46113db 这是任善文第一次提交到本地仓库

2:第二种方式:通过版本号回退到任何一个版本。

 git reset --hard 版本号

注意:git log 与 git reflog 的区别:git log不能查看比当前版本高的版本信息。

ubuntu@python:~/Desktop/git_practice$ git reflog
46113db (HEAD -> master) HEAD@{0}: reset: moving to HEAD^
57ecff8 HEAD@{1}: commit: 这是任善文第二次提交到本地仓库
46113db (HEAD -> master) HEAD@{2}: commit (initial): 这是任善文第一次提交到本地仓库
ubuntu@python:~/Desktop/git_practice$ git log
commit 46113dbc4ebde6709ce0262384a5f65f3f89c0ab (HEAD -> master)
Author: renshanwen <1173714240@qq.com>
Date:   Mon Aug 24 17:17:52 2020 +0800

    这是任善文第一次提交到本地仓库

案例:回退到第二个版本:

ubuntu@python:~/Desktop/git_practice$ git reset --hard 57ecff8
HEAD 现在位于 57ecff8 这是任善文第二次提交到本地仓库

七:撤销和修改操作:
只能撤销工作区、暂存区的代码,不能撤销仓库区的代码
撤销仓库区的代码就相当于回退版本操作
1:撤销工作区的代码:git checkout 文件名
2:撤销暂存区代码:
第一步:git reset HEAD 文件名 (暂存区撤销到工作区)
第二步:git checkout 文件名(撤销工作区)
案例:1:在test.py加入“我是牛牛”,然后撤销,再次查看。
单人本地仓库的操作_ubuntu

git checkout test.py

单人本地仓库的操作_python_02
案例2:再次修改文件,然后提交到暂存区,然后执行两次操作。

ubuntu@python:~/Desktop/git_practice$ vim test.py 
ubuntu@python:~/Desktop/git_practice$ git add .
ubuntu@python:~/Desktop/git_practice$ git reset HEAD test.py
重置后取消暂存的变更:
M	test.py
ubuntu@python:~/Desktop/git_practice$ git checkout test.py
ubuntu@python:~/Desktop/git_practice$