一:创建版本库
- 创建一个空目录
$ mkdir fileName《其中fileName例如readme.txt》
$ cd fileName
$ pwd
《其中的pwd命令用于显示当前的目录》
例如我在我的E盘创建了一个Git_Practice文件夹
2. 把上面创建的目录变成Git可以管理的仓库
$ git init
《这步之后就会在现在的目录中出现一个 .git 文件》
《后面写的文件就要保存在现在创建的目录下》
我的接着上面的步骤如下
【上面说该仓库现在是一个空的仓库】
上面命令执行完后会产生一个.git文件,该文件是一个git可以进行管理的仓库,我的如下
3. 将写好的一些文件添加到仓库
$ git add fileName
例如我在记事本里面写了个git_learn.txt文件并把他保存到Git_Exercises目录下
- 将写好的一些文件提交到仓库
$ git commit -m "explain this commit"
【其中-m后面的双引号里面写的是对本次提交的说明,例如wrote a readme file,后续可以通过这个解释来分辨每次被提交的文件版本】
我的如下:
二:穿梭历史
- 查看当前仓库的状态
$ git status,《可以看当前文件是否被修改或者被提交》
【下面出现的changes not staged for commit说明文件被修改了并且还没有被提交】
例如我对我的文件做了一次修改结果如下:
【上面说changes not staged for commit意思是还未被提交的修改,是在说我的文件被修改了但是还没有被提交】
2. 查看文件具体被修改的内容
$ git diff fileName
我的如下:
然后将修改后文件提交
上面画红线部分是本次提交说明
然后再查看文件此时的状态,如下:
上面说工作树是干净的说明文件已经被提交
3. 显示所有的提交日志
$ git log
或者 $ git log --pretty=oneline
【文件每次被修改后再次要提交时都需要$ git add fileName和$ git commit -m “explain this commit”】
下面我又对文件进行了修改并做了如上的提交:
下面开始查看文件的所有提交日志
git log命令会显示从最近到最远的提交日志,上面画线的都是每次提交时的commit id(版本号),画圈的都是每次提交的解释说明(关键词)
或者想看到更为简洁一点的日志提交信息可以用以下命令,前面是commit id后面紧跟说明
4. 回到上一次写的版本文件
$ git reset --hard HEAD^
【HEAD表示当前版本,HEAD ^ 表示上一个版本,HEAD^^表示上上个文件,以此类推】
例如我将我的文件回到上一个版本也就是git material这一个版本
再打开我的git_learn.txt文件可以看到文件由三行变成了两行
5. 回到最新的版本
$ git reset --hard commit_id《commit_id是每个文件的版本号,是一长串的十六进制数字》
根据前面显示的每次提交的版本号回到最新版本,如下:
然后再打开文件上面可以看到文件又有了三行回到了最新版本
- 查看所记录的每一次的命令
$ git reflog
我的如下:
上面显示了最近到最远的每一次命令
7. 查看文件内容
$ cat fileName
我的如下:
8. 撤销修改
(1)$ git checkout --fileName【撤销没有被add到暂存区.git 的修改】
我在这里再一次对文件内容做了一次修改并保存,本次修改没有被提交也就是该文件没有被放到.git暂存区,内容如下
然后使用撤销修改命令如下:
从上面可以看到修改已被撤销
(2)git reset HEAD fileName【撤销被add到暂存区.git 的修改】
在这里再修改一下文件并提交到暂存区.git。如下
当使用上一步的用于撤销没有被提交到暂存区的修改的命令时可以看到文件修改并没有被撤销,结果如下:
然后再来试一下新的撤销命令git reset HEAD git_learn.txt,会将提交到暂存区.git 的修改给撤销,如下:
此时回到工作区文件状态,但工作区修改还未被撤销,所以可以看到上面最后一行 “ksbhjbjhvj” 还在,再使用git checkout – git_learn.txt命令,整个修改就会被撤销。如下:
可以看到上面最后一行的 “ksbhjbjhvj” 已经不见
- 在文件管理器中删除文件
(1)$ rm fileName【删除工作区的文件】
- 在版本库中删除文件
$ git rm fileName【删除提交到暂存区.git的文件,提交到暂存区说明使用了git add fileName命令的】
三: 远程仓库
- 创建SSH Key
$ ssh-keygen -t rsa -C"youremail@example.com"《引号里面例如:2026214922@qq.com》
- 关联远程库
$ git remote add origin git@github.com:yourAccount/learngit.git《其中yourAcconut是你在github上面注册的账户,learngit是在github上面创建的仓库名》
- 将本地库的内容推送到远程库
$ git push -u origin master
- 从远程库克隆到本地库
$ git clone git@github.com:yourAccount/gitskills.git
想更加详细的学习git请参考[史上最浅显易懂的Git教程]:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/