创建版本库
版本库(repository)就是你要用 Git 来管理的一个总目录,该目录下所有的目录和文件的任何变化都会被 Git 所记录,哪个文件修改了,哪个文件删除了,都可以通过 Git 来查看。一种简单的应用是只在在本地操作不发布到其他地方,比如你写一本书打算出版,只是在本地修改,不发布。但是大部情况是多人协作,本地需要和一个公共管理平台(比如 Github)对接。
本地创建版本库
在任意一个目录下用 Git 初始化后就可以用 Git 来管理,比如把 blog 这个目录用 Git 管理
git init
这样就好了。当前目录下会多了一个.git的目录,这个目录是Git来跟踪管理版本库的,不要手动修改这个目录里面的文件。
Git 有一个叫暂缓区的东西来和你的目录(工作区)对照,看有什么变化。所以一旦修改需要把修改添加到暂缓区让 Git 知道,比如你修改了一个文件,那么
git add 你的文件
这样就相当于通知了 Git 你已经修改过了。但是 add 只是通知,你还要正式提交修改
git commit -m "备注"
为了方便日后查询,需要添加备注。
和远程仓库连接
先把远程仓库克隆到本地,远程仓库的分支名叫 origin master。
git clone 远程仓库地址
然后就可以自己修改了,我们一般在本地 master 分支修改,当然你也可以在本地新建一个分支,假如新分支叫 test,然后把 test 分支的修改 merge (合并)到主分支。
准备把你的修改提交到远程仓库钱,需要查看一下远程仓库有没有人更新,只有保持本地和远程的仓库内容一致,才可以把你的修改 push 到远程仓库。直接更新到本地
git pull
之后,推送到远程
git push origin master
Git 逻辑
本地修改 add ——>暂缓区 commit ——>提交或合并到分支 pull ——>更新本地仓库 push ——> 远程仓库
Git 既然是版本控制系统自然具备时光机功能,如果想返回前面的版本怎么办。HEAD 代表提交(commit)后的最新版本,上一个版本就是HEAD^
git reset --hard HEAD^
上上一个版本就是HEAD^^,再往前也能回去,但是希望我们不会遇到。
reset是指将当前head的内容重置,不会留任何痕迹。相当于覆盖原来的 commit 信息,而不是撤销,撤销的话也算一次 commit。