介绍:git :管理代码的,一个版本控制系统,类似于SVN
git下载地址:https://git-scm.com/downloads
安装git 一路下一步就可以了,安装完成后,在桌面空白地方,点击【右键】,菜单栏中会多出Git GUI Here 和 Git Bash Here
一切就绪之后,我们开始进入正题了
先来个总结:
git init : 初始化仓库,把普通目录变成git可以管理的仓库
git config --global user.name "Your Name":添加用户名信息
git config --global user.email "email@example.com" :添加邮箱信息
git status : 查看仓库的状态
git add .:将所有文件添加到暂存区
git commit -m "说明改了啥,加了啥": 将文件提交到工作区
git diff 文件 : 查看文件修改内容
git log ,git reflog : 查看历史版本记录
git reset --hard HEAD^ :回到上一个版本。HEAD^^回到上上个版本,HEAD~100回到上100个版本
rm 文件:删除文件
git checkout 文件 : 文件撤销
话不多说,直接上图(代码)
1.找一个目录,尽量英文路径,创建文件夹workspace(你随意)
2.进入目录,【右键】,点击【 Git Bash Here】,你会看到这样一个弹窗(实际没这么小,我只截了上半部分).为了方便,后面将该窗口统一称作为"命令窗口",以下使用骚气的粉色来代表每一条重要的命令
3.输入命令:git init ,把这个目录变成一个git可以管理的仓库,你会发现workspace目录下面会多一个.git文件
4.git config --global user.name "Your Name"设置一下用户名,写一个可以代表自己的就行
5.git config --global user.email "email@example.com" 设置email地址
6.在目录中创建一个文件,比如test.py,里面内容如下
print("Hello Python")
7.保存成功后,回到“命令窗口”,使用 git status 查看仓库状态
上面大概意思就是,你新增了一个test.py文件,然后你可以使用add 命令添加
8.使用git add test.py将文件添加到暂存区。关于暂存区,你可以把它理解为一个中转站,或者货物装上车了
请不要怀疑,提交成功后,看不到任何其他信息
9.使用 git commit -m "新增了一个test.py文件" 将文件提交到仓库中。-m这个选项最好加上,原因省略一万字。到此代码已经成功的提交到仓库里面了
10.再次使用 git status 查看目前的状态
显示没有东西要提交了
11.修改test.py文件,加入一行代码
print("Hello Python")
print("Hello JAVA")
12. git diff test.py 查看修改的内容
13. 使用命令:git add . 和 git commit -m "增加了Hello JAVA代码" ,添加并提交。这里的 . 代表添加所有文件
14. git log 查看历史修改记录
15. git reset --hard HEAD^ 回到上一个版本,HEAD^^回到上上个版本,以此类推,如果回到上100个版本,git reset --hard HEAD~100
通过cat test.py命令查看到第二行代码已经没了,再次查看版本信息: git log
只剩下一个修改记录了
16.但是走过的路,痕迹是永远抹不掉的,git reflog 还是可以查看到,是不是很优秀!
17.这时候,我又后悔了,又想回到"新增Hello JAVA代码"那个版本怎么办,不要慌,世上还是有后悔药的。
git reset --hard 27cf72a ,其中27cf72a就是版本号id,通过这条命令,你可随意切换到任意一个版本
18.撤销修改。
方法一:直接修改文件,然后再次添加提交
方法二: 使用git reset --hard HEAD^
方法三:git checkout file 丢弃暂存区的修改 (没有执行add 和commit操作)
这里我实验一下第三种方法,比如又添加了一行代码:
print("Hello Python")
print("Hello JAVA")
print("Hello HTML")
cat test.py查看文件,但是我没有执行add操作
git checkout test.py
再次查看文件,发现已经去除了刚刚添加的内容
19.在暂存区,使用rm删除了文件,怎么撤回删除?比如我新增了一个文件test1.py,并且添加到暂存区了
使用rm test1.py删除了文件
让删除的文件回来git checkout test1.py
怎么样,是不是很easy!