Git自学与掉坑实录(二)

目录

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文件

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容

  • 目录 Git自学与掉坑实录(一)· 创建版本库· 添加提交文件至版本库 Git自学与掉坑实录(二)· 本地文件的修...
    达噜六阅读 443评论 0 1
  • 遇到红桃k纯属偶然,上午在一个小村子执勤,坐在一农户家走廊,无所事事,聊天。忽然看到他晒着象棉球状东西很有趣,...
    寒山草堂阅读 1,545评论 0 0