美文网首页GitGit
git 技巧(老司机也需要)

git 技巧(老司机也需要)

作者: inke | 来源:发表于2017-07-04 14:52 被阅读305次

git 技巧(老司机也需要)

git 看过3本书,感觉自己已经用的很溜了,但是发现有些特殊场景下的问题,可能当时自己看书没有理解或者撸多了,导致还是有些问题困扰,此贴一直更新,记录实际开发中遇到的问题。

image.png

[toc]

git 忽略本地特殊文件变化

原因:因为 inke 用的 mac os,同事用的 windows os ,所以项目中的某些配置文件的路径不同,所以每次提交代码的时候都要 checkout 或者 reset 某个配置文件,防止提交代码影响大部分同事配置文件的 windows 路径,每次复制粘贴回来很烦,又不能直接修改.gitignore 文件,因为大家用的都是同一套的.gitignore 文件。

  • 忽略本地 a.txt 文件的追踪(即使这个文件已经提交到远程了)。

    git update-index --assume-unchanged a.txt
    

    如果这个配置文件的远程代码已经更新了,那么我们本地的忽略文件在 pull 代码的时候也会同步更新,此时还需要改变一下适合我们本地配置的代码,但是你的改变不会提交到远程。

  • 恢复本地的 a.txt 文件的追踪(使用了上面的代码忽略过了,但是想恢复成不忽略)

    git update-index --no-assume-unchanged a.txt
    

技巧:

可以使用 -p 的参数,选择性的 add 某些代码,不用 add 整个目录

git add -p a.txt

注意:

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

另一种方式忽略,只能是未追踪过的文件:

修改本地exclude文件,规则和.gitignore是一样的。

vim .git/info/exclude

git .gitignore 文件不生效问题

有时候在项目开发过程中,突然心血来潮想把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

  • 解决方法:把本地缓存删除(改变成未track状态),然后再提交:

    git rm -r --cached .
    git add .
    git commit -m 'update .gitignore'
    

当然没有必要git rm -r --cached . 把所有的文件都变未track状态,可以针对某些不想要的文件.
例如:git rm -r --cached a.txt

注意:

不要误解了 .gitignore 文件的用途,该文件只能作用于 Untracked Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 addcommit 过的文件)。
如果文件曾经被 Git 记录过,那么.gitignore 就对它们完全无效。


git 修改已经提交的作者和邮箱

git commit --amend --author="inke <inke88@163.com>" --no-edit

git 本地 commit 改为 未 commit,重新修改或提交

由于公司大哥把自己修改的配置代码 commit 在本地但是没有 push 到远程,怕影响大家配置,又不想修改后再提交一次,所以需要使用 reset

  • git reset –mixed默认方式,相当于git reset,它回退到某个版本,只保留源码,回退commitindex信息。相当于时光回溯到 addcommit 之前
  • git reset –soft:回退到某个版本,只回退了commit的信息,index和 代码 都不变。相当于修改了提交日志
  • git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容。完全回到了某个版本,如果想下次checkout CommitId ,可以使用 reflog 查看

git 全局忽略 MAC OS 系统文件

vim ~/.gitignore

把一下内容添加到~/.gitignore

### macOS template
*.DS_Store
.AppleDouble
.LSOverride

相关文章

  • git 技巧(老司机也需要)

    git 技巧(老司机也需要) git 看过3本书,感觉自己已经用的很溜了,但是发现有些特殊场景下的问题,可能当时自...

  • 常州考驾照:靠边停四步技巧

    驾考时,靠边停车不仅需要技巧也需要车感,和常州考驾照一起看看老司机四步靠边停技巧。 众悦学车(靠边停车四步) 能找...

  • JS老司机技巧

    //void 0代替undefined;function(){return void 0;}除了防止被重写外,还可...

  • 老司机也迷路

    五年前我开车最苦恼的事是我不知道路该怎么走,我是一枚实实在在的路痴,一想到开车从A地到B地心里就虚,实在...

  • 如何应对网站不同阶段的优化

    老司机开车,安全又炫酷。 大家好,我是老司机,今天跟大家讲讲关键词排名不同阶段的操作技巧。 没有收录 网站没有被收...

  • 司机也需要修炼

    朋友给我电话,问我他亲戚家的司机,有猫腻,买了一辆新车,三个月跑了一万多公里,还发生了严重的事故,保险也有很多疑点...

  • 老司机带路,手把手教你使用Git

    老司机带路,手把手教你使用Git 一:Git是什么? Git是目前世界上最先进的分布式版本控制系统。 二:S...

  • 不是老司机,也不是女司机

    女司机等于马路杀手。 身边有驾照的姑娘们在听到这句话后,很少有像我这么义正言辞翻白眼、骂个“呸”的。这倒并不是因为...

  • 关于竞价—关键词添加规则

    老司机开车,安全又实用。 大家好,我是老司机,今天老司机跟大家聊聊竞价中关键词的添加规则。 关键词需要遵循的规则 ...

  • 也说老司机事件。

    随着两人对簿公堂,老司机事件总算是告一段落、或许是有了个大结局。 一切看着都那么文学,但确实是绝对真实。 说实话,...

网友评论

    本文标题:git 技巧(老司机也需要)

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