美文网首页
Git自学与掉坑实录(二)

Git自学与掉坑实录(二)

作者: 达噜六 | 来源:发表于2017-07-06 22:19 被阅读0次
目录

Git自学与掉坑实录(一)
· 创建版本库
· 添加提交文件至版本库

Git自学与掉坑实录(二)
· 本地文件的修改与提交
· 多版本之间的切换
· 查看版本历史
· 忽略特殊文件

Git自学与掉坑实录(三)
· 工作区、暂存区、版本库的概念
· 进行到各个阶段管理(添加、删除、恢复、修改)文件的方法

Git自学与掉坑实录(四)
· 远程仓库
· Github的入门说明
· 参与开源项目

Git自学与掉坑实录(五)
· 管理(创建、合并、删除)分支
· 解决冲突
· Fast forward模式与禁用(是否显示合并信息)
· bug分支
· 功能分支
· 多人协作(查看信息、推送远程库、抓取)

Git自学与掉坑实录(六)
· 创建标签
· 删除标签(本地与远程)

Git自学与掉坑实录(七)
· 显示代码颜色
· 忽略文件与强制添加某些忽略文件
· 搭建Git服务器

<br />
今天学习的内容比较简单,没遇到什么坑。所以多写了一些拓展的东西。
</br>

五、文件的增删改查

1.改写wil.txt文件内容为:
"Gold jewelry shining so bright so shine.
Strawberry champagne on ice.
Lucky for you that's what I like that's what I like."
</br>
2.输入命令$(查看仓库状态)git status

说明文件已被修改,但还未添加、提交

3.输入命令$(查看具体修改内容)git diff

从红绿两行可以看出,我们在第一行添加了"so shine"

</br>
4.输入命令$(添加修改过的文件到仓库)git add wil.txt
</br>
5.输入命令$(查看此时的仓库状态)git status

修改过的"wil.txt"将被提交仓库
</br>
6.输入命令$(提交修改过的文件到仓库)git commit -m "add test"

</br>
7.输入命令$(再次查看此时仓库的状态)git status
说明此时没有需要提交的修改,工作目录是干净的

</br></br>

*意外情况
git status后出现".DS_Store"系统文件未被添加提交的信息


· DS_Store 是用来存储这个文件夹的显示属性的。总言之是没什么很大作用,还会泄漏本地信息的这么个东西。建议删除。

三种处理方法:
a. 删除Git中的".DS_Store"
进入到对应目录,
· 输入命令$(删除文件)git rm file_path

$ git rm --cached file_path#用于我们不希望这个文件被版本控制,但本地需要使用的删除;
$ git rm file_path#用于我们不希望这个文件被版本控制,本地也不需要使用的删除。

· 输入命令$git commit -m "delete ds"
· 输入命令$(将当前分支推送到origin主机的对应分支)git push origin

$ git push#用于命令用于将本地分支的更新,推送到远程主机。
$ git push origin#将当前分支推送到origin主机的对应分支,如果当前分支只有一个追踪分支,那么主机名可以省略。

但据研发小伙伴说,".DS_Store"就算删掉了系统还是自动生成,我们只能选择忽略它……

b. 忽略Git中的".DS_Store"
在对应的Git目录下,创建一个.gitignore文件,然后在该文件里配置上.DS_Store。类似拉黑名单的路子。
· 输入命令$(创建.gitignore)touch .gitignore
· 输入命令$(打开.gitignore)open .gitignore
· 在打开的文本框内输入".DS_Store",换行再输入"*/.DS_Store",保存;
· 输入命令$(提交.gitignore)git add .gitignore&git commit -m"ignore"

$ git config --list #查看现有的配置

$ vim .gitignore 或简写 vi .gitignore#vim可以编辑文件
· 按 i 进入编辑模式;
· 编辑结束按"esc键";
· 在底部弹出的输入行,输入":wq";
· 回车保存。

如果你已经commit了".DS_Store",文件已经被纳入了版本管理中,再进行忽略是无效。
必须先输入命令$(删除缓存)git rm -r --cached file_path

另外,在教程里也有一章比较详细地提到《忽略特殊文件》的具体办法。

c. 假装没看见这行代码…从心理上删除……

<br />

六、版本切换

再上传一个新版本:
对wil.txt进行修改;

随便加点什么
输入命令$ git add&git commit -m "oh"

这样我们一共修改了三个版本(从旧到新):版本1-"test"、版本2-"add test"、版本3-"oh"。接下来我们看这三个版本之间查看切换方法:

1.概念介绍:
首先说一下"commit"的快照概念,这个概念可以辅助理解第一部分的背景介绍。廖雪峰老师把这个概念说明得很清楚,于是下面直接摘抄:

“不断对文件进行修改,然后不断提交修改到版本库里,就好比玩RPG游戏时,每通过一关就会自动把游戏状态存盘,如果某一关没过去,你还可以选择读取前一关的状态。……Git也是一样,每当你觉得文件修改到一定程度的时候,就可以“保存一个快照”,<b>这个快照在Git中被称为commit</b>。一旦你把文件改乱了,或者误删了文件,还可以从最近的一个commit恢复,然后继续工作,而不是把几个月的工作成果全部丢失。”

[廖雪峰-版本回退](http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013744142037508cf42e51debf49668810645e02887691000)

</br>
2.查看命令记录:
· 输入命令$(查看版本历史)git log

显示内容包括"commit id"、"作者&邮箱"、"文件说明"、"创建时间"。


按时间降序排列,最新提交的日志在上

· 输入命令$(查看版本历史)git log --pretty=oneline

显示内容包括"commit id"、"文件说明"


按时间降序排列,最新提交的日志在上

前面一大串黄黄的字符就是"commit id",每一个用户的"commit id"都是不一样的。

</br>
3.退回上一个版本:
· 输入命令$(回退到上一个版本)git reset --hard HEAD^

回退到上一个版本成为当前版本。



版本2"add test"成为当前版本

head表示当前版本;head^表示上一个版本;head^^表示上上一个版本;head~100表示往上100个版本。

此时,我们输入命令git log --pretty=oneline后发现,版本3的记录消失了。

</br>
4.前往未来版本:
· 输入命令$(回到"id"为"ba3245c"的版本)git reset --hard ba3245c

当我们能在窗口内直接找到该版本的"commit id"时,直接输入前几位即可。

当在窗口内找不到版本"commit id"时,
输入命令$(查看该目录所有的命令记录)git reflog,调出需要的"id"。

<br /><br />

小结

$ git status#随时查看工作区、版本库的状态。
$ git diff #当工作区状态变化时,可以查看具体修改内容。add之后无法查看。
$git reset --hard HEAD^ #退回上一个版本。
$ git reset --hard commit_id #可以前往id所代表版本。
$ git log #用于回到以前的版本。以当前版本为终点,查看提交历史命令。
$ git reflog#多用于重返未来。查看所有操作过的命令记录。
$ vim .gitignore 或简写 vi .gitignore #用于打开文档;"i"进入编辑状态,"esc键"退出编辑状态,输入":wq"保存并退出。

· "commit"相当于一个Git的快照。
· 《忽略特殊文件》的办法

<br /><br /><br /><br /><br /><br /><br />

主要参考:

· 廖雪峰Git教程

其他文章与资料:

· git push
· git rm与git rm --cached
· 如何删除github上的文件
· Git 忽略一些文件不加入版本控制
· Git中全局忽略.DS_Store文件

相关文章

  • Git自学与掉坑实录(一)

    目录 Git自学与掉坑实录(一)· 创建版本库· 添加提交文件至版本库 Git自学与掉坑实录(二)· 本地文件的修...

  • Git自学与掉坑实录(三)

    目录 Git自学与掉坑实录(一)· 创建版本库· 添加提交文件至版本库 Git自学与掉坑实录(二)· 本地文件的修...

  • Git自学与掉坑实录(二)

    目录 Git自学与掉坑实录(一)· 创建版本库· 添加提交文件至版本库 Git自学与掉坑实录(二)· 本地文件的修...

  • Git自学与掉坑实录(六)

    目录 Git自学与掉坑实录(一)· 创建版本库· 添加提交文件至版本库 Git自学与掉坑实录(二)· 本地文件的修...

  • Git自学与掉坑实录(七)

    目录 Git自学与掉坑实录(一)· 创建版本库· 添加提交文件至版本库 Git自学与掉坑实录(二)· 本地文件的修...

  • Git自学与掉坑实录(五)

    目录 Git自学与掉坑实录(一)· 创建版本库· 添加提交文件至版本库 Git自学与掉坑实录(二)· 本地文件的修...

  • Github入门 — Git自学与掉坑实录(四)

    目录 Git自学与掉坑实录(一)· 创建版本库· 添加提交文件至版本库 Git自学与掉坑实录(二)· 本地文件的修...

  • .gitignore文件

    git rm与git rm --cached 1) gitignore文件 在git中如果想忽略掉某个文件,不让...

  • Mac 安装Tensorflow Object Detectio

    步骤与坑: 0. 先于所有: cd $HOME/workspace git clone https://git...

  • GIT命令总结

    一、 git rm 与 git rm --cached 二、git diff 、git reset 与 git ...

网友评论

      本文标题:Git自学与掉坑实录(二)

      本文链接:https://www.haomeiwen.com/subject/ondqhxtx.html