其实git的学习,不算很正统,为了把项目提交给后端服务器部署折腾很久,写一篇博客来梳理一下关于git。
git说实在就是一个版本控制,起到一个保护的作用。git是C语言写的。
版本库又叫仓库,相当于一个目录,这个目录中的所有文件都可以被git管理起来。
指令
git init
初始化仓库,可以让git管理的仓库
首先这里再明确一下,所有的版本控制系统,其实只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git也不例外。版本控制系统可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,虽然也能由版本控制系统管理,但没法跟踪文件的变化,只能把二进制文件每次改动串起来,也就是只知道图片从100KB改成了120KB,但到底改了啥,版本控制系统不知道,也没法知道。
指令
git add .
git commit -m ' 提交本次备注信息'
add把修改的文件放到仓库中,commit提交文件。
指令
git status
查看当前仓库的状态
指令
git log
查看历史
想要回退版本,head表示当前版本,^head表示当前版本,上上一个版本就是 ^^head
git reset --hard HEAD^
在Git中,总是有后悔药可以吃的。当你用$ git reset --hard HEAD^回退到add distributed版本时,再想恢复到append GPL,就必须找到append GPL的commit id。Git提供了一个命令git reflog用来记录你的每一次命令
Git和其他版本控制系统如SVN的一个不同之处就是有暂存区的概念。
工作区就是你在电脑里能看到的目录
git中的版本库就存了很多东西,其中最重要的是叫stage暂存区,还有git为我们自动创建的一个分支master,以及指向master的一个指针叫HEAD
第一步是用git add把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用git commit提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个master分支,所以,现在,git commit就是往master分支上提交更改。
你可以简单理解为,需要提交的文件修改通通放到暂存区,然后,一次性提交暂存区的所有修改。
最主要的是远程仓库
本地与远程仓库可以进行交互是因为有SSH私钥,
为什么远程仓库需要SSH Key呢,因为远程仓库需要确认你推送的提交确实是你提交的而不是别人。
git remote add origin git项目的地址