美文网首页
跟我学Git(一)

跟我学Git(一)

作者: 橙皇cc | 来源:发表于2020-06-06 09:17 被阅读0次

写在开头

笔者在面试中遇到了很多次关于Git的提问,遂阅读《精通Git(第2版)》,此系列为读书笔记,对书中关键点进行总结,要求读者有对Git的基本认识和探索兴趣。

忽略文件

很多时候,我们不希望某一类文件被Git自动添加或跟踪,可以创建.gitignore文件,并在文件中列出待匹配文件的模式,可以写入.gitignore文件的匹配模式规则如下:

  • 空行或者以#开始的行会被忽略(注释)
  • 支持标准的glob格式
    -以(/)开头的禁止递归匹配
    -以(/)结尾表示目录
    -以(!)开始表示取反

.gitignore文件的例子如下:

*.a                   # 忽略.a类型的文件
!lib.a                # 跟踪lib.a文件,尽管上一行忽略所有.a文件
/TODO                 # 只忽略当前目录的TODO文件,而不忽略递归目录下的TODO
build/                # 忽略build目录下的所有文件
doc/*.txt             # 忽略doc目录下的所有.txt文件,但不递归
doc/**/*.pdf          # 递归地忽略doc目录下的所有.pdf文件

跳过暂存区

如果项目不大,三人以下协作开发或确保修改(jiaban)时无人冲突,暂存区就显得过于繁琐,这时只用如下命令,就不需要先add添加再提交了。

git commit -a -m "initial commit"

撤销操作

合并提交

笔者在工作中针对一个问题的修复常常涉及多个文件,经常出现漏提交某个文件导致git记录提交两次且提交信息重复很难看,解决这种问题方法如下:

git commit -m "initial commit"
git add forgotten_file
git commit --amend

最终提交文件包括以上两个,提交信息和记录为一个

撤销暂存

有可能只上线测试修复的一个问题,却把所有修复文件都add到暂存,可以通过如下命令将文件移除暂存区:

git reset HEAD read.md           # 只移除read.md文件
git reset HEAD -- path/.         # 移除目录下所有文件
撤销修改

因为业务频繁变更,可能刚修好的问题,又不需要改了或者有了新的方向,在未提交的状态下,通过如下命令放弃对文件的更改:

git checkout  -- read.md     

任何未提交的变更一旦丢失,很可能再也找不回来了。

相关文章

  • 跟我学Git(一)

    写在开头 笔者在面试中遇到了很多次关于Git的提问,遂阅读《精通Git(第2版)》,此系列为读书笔记,对书中关键点...

  • 跟我学Git(四)

    凭据保存 如何保存 Git有一套有助于解决重复验证的凭据系统,有如下选项: 默认不缓存任何内容。所有连接都会提醒你...

  • 跟我学Git(二)

    标记 Git可以把特定的历史版本标记为重要版本。 创建注释标签 -a表示标签为注释标签,-m指定标记信息,它会和标...

  • 跟我学Git(三)

    超强命令:filter-branch 如果你需要以某种脚本化的方式重写大量提交(例如,全面修改你的电子邮件地址或从...

  • 跟我学区块链(一) 环境搭建

    跟我学区块链(一) 环境搭建

  • 历史|女人与革命:英国经验

    女人与革命:英国经验来源:跟我学历史公众号(gowithhistory)作者:司徒亚德·跟我学历史公益会会员 【编...

  • mysql存储过程

    转载自:跟我学MySQL存储过程

  • 风云生 试论成为高手难不难

    这个话题,其实是昨天某一个学生给我留言,引发的。有人要跟我学功夫,我都告诉他,跟我学,你要有成为高手的野心,与决心...

  • 太极拳学习之八

    我非常喜欢的一首太极拳歌曲 《跟我学太极》 这首《跟我学太极》歌曲,是已故太极拳人马畅边太极边唱的一首歌曲,...

  • 反馈

    老师说:“如果你跟我学习过,你应该能发现,我很强调反馈” “如果你已经跟我学习一年以上,你会发现,我几乎是一个把反...

网友评论

      本文标题:跟我学Git(一)

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