1.创建版本库
(1)首先选择一个合适的地方,创建目录
(2)通过git init命令把这个目录变成Git可以管理的仓库:
2.讲文件添加到版本库
(1)编写readme.txt
(2)用命令git add告诉Git,把文件添加到仓库
(3)用命令git commit告诉Git,把文件提交到仓库
备注:git commit命令,-m后面输入的是本次提交的说明,可以输入任意内容,当然最好是有意义的,这样你就能从历史记录里方便地找到改动记录。一个一次add多个文件,然后一次commit
git status命令可以让我们时刻掌握工作区的状态
git diff顾名思义就是查看difference,查看修改的内容
3.提交修改文件
(1)git add
(2)git commit
备注:在修改文档未提交时,查看git status命令得到反馈readme.txt被修改过了,但还没有准备提交的修改。在文档添加后,即完成(1),使用git status告诉我们,将要被提交的修改包括readme.txt,提交后,即完成(2)后,我们再用git status命令看看仓库的当前状态,此时Git告诉我们当前没有需要提交的修改,而且,工作目录是干净(working directory clean)的
4.回退
commit相当于快照,一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失
git log命令显示从最近到最远的提交日志,我们可以看到3次提交,最近的一次是append GPL,上一次是add distributed,最早的一次是wrote a readme file。
基础知识:Git必须知道当前版本是哪个版本,在Git中,用HEAD表示当前版本,也就是最新的提交3628164...882e1e0(注意我的提交ID和你的肯定不一样),上一个版本就是HEAD^,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。
使用git reset完成版本的回退,命令如下:
$ git reset--hard HEAD^ //回到上一个版本
HEADisnowatea34578adddistributed
备注:回退后再log中查不到未来的信息了,也有办法恢复
(1)知道append GPL的commit id,此时可以通过git reset 即可回到未来状态
(2)不知道append GPL的commit id,使用git reflog查找之前的命令,找到commit id 即可回到未来状态
add是将文件存在暂存区,commit是将文件放入master中,也即放入当前的分支中
commit只提交当前被add的操作
5.撤销修改的操作
场景1:当你改乱了工作区某个文件的内容,想直接丢弃工作区的修改时,用命令git checkout -- file。
场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想丢弃修改,分两步,第一步用命令git reset HEAD file,就回到了场景1,第二步按场景1操作。
场景3:已经提交了不合适的修改到版本库时,想要撤销本次提交,参考版本回退一节,不过前提是没有推送到远程库
6、文件删除
(1)本地删除,版本库也要删除,操作为:git rm删掉,并且git commit
(2)本地删除,版本库存在,要恢复文件,操作为:git checkout,本质是让版本库中的文件代替当前工作区的文件,此时工作区文件恢复了,但最新一次的修改未保存
GitHub作为git的远程仓亏,可以设置,完成SSH加密传输
也可以自己创建Git远程库
7.多人协作
(1).当一个成员创建了一个项目时,其他人使用git clone克隆一个本地库,命令为:$ git clone git@github.com:michaelliao/gitskills.gi
注意把Git库的地址换成你自己的,然后进入对应目录查看,即可看到该项目中的文件
(2)多人协做时,可以创建自己的分支,来达到既保留自己当前的进度,又不影响别人工作的效果。
操作步骤:
首先创建自己的分支,然后切换到新创建的分支。命令为:
$ git checkout -b dev //创建+切换到当前分支
可以用git branch命令查看当前分支进行验证,得到的结果当前分支前面会标一个*号。
然后切换到分支后可以进行文件的修改,然后通过add和submit完成修改提交
接着切换到master分支(所有人在的分支),并将dev分支上的内容合并到master上,命令为;
$ git checkout master //回到master分支
$ git merge dev //合并到master分支上
最后可以删除dev分支,再次查看当前的分支 命令为:
$ git branch -d dev //删除dev分支
$ git branch //查看当前分支
8.打标签
标签的作用是将commit id 转换成标签,便于查找,命令为:
$git tag v1.0 //默认标签是打在最新提交的commit上的
给历史的commit提交标签,需要找到之前的comment ID,然后使用命令:
$git tag v0.96224937 //其中96224937为commit ID
完成过程中可以通过git tag命令查当前的tag
还可以创建带有说明的标签,用-a指定标签名,-m指定说明文字。例如:
$git tag -a v0.1-m"version 0.1 released"3628164
命令git push origin 可以推送一个本地标签;
命令git push origin --tags可以推送全部未推送过的本地标签;
命令git tag -d 可以删除一个本地标签;
命令git push origin :refs/tags/可以删除一个远程标签