Home

Awesome

  1. 介绍GitGuide 致力于打造最易懂的 Git 版本控制入门教程,让天下没有难学的 Git 版本控制
  2. 转载须知 :以下所有文章与视频教程皆为我的原创,转载请联系我们,如发现恶意抄袭/搬运,会动用法律武器维护自己的权益,让我们一起维护一个良好的技术创作环境!
  3. Star/Fork 支持:开源不易,如果开源项目帮助你打开 Git 学习大门,希望你能 Star 支持我们,你的支持就是我们持续更新的动力。
<p align="center"> <a href="https://mp.weixin.qq.com/s/PpeblHk6Ml4w8iNrrw8UAA"><img src="https://img.shields.io/badge/%E5%9C%A8%E7%BA%BF%E9%98%85%E8%AF%BB-read-brightgreen" alt="在线阅读"></a> <a href="#公众号"><img src="https://img.shields.io/badge/%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7-%E4%BB%A3%E7%A0%81%E6%83%85%E7%BC%98-orange" alt="公众号"></a> <a href="#公众号"><img src="https://img.shields.io/badge/PDF-Git%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6-yellowgreen" alt="PDF"></a> <a href="#联系我"><img src="https://img.shields.io/badge/%E8%81%94%E7%B3%BB%E6%88%91%E4%BB%AC-weChat-orange" alt="联系我"></a> </p>

给我一个 Star! ⭐

如果您喜欢或者打算使用这个项目来学习或者来开始你的 Git 版本控制学习之路,给我一个 Star,谢谢!

版本控制的起源


版本控制(Revision Control)


常见版本控制工具


Git和 SVN 的简单对比


GIT简介


GIT工作原理


GIT自学网站推荐: https://backlog.com/git-tutorial/cn/


GIT使用环境


GIT命令-个人开发

#               表示此为注释,将被Git忽略
*.a             表示忽略所有 .a 结尾的文件
!lib.a          表示但lib.a除外
/TODO           表示仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/          表示忽略 build/目录下的所有文件,过滤整个build文件夹;
doc/*.txt       表示会忽略doc/notes.txt但不包括 doc/server/arch.txt
 
bin/:           表示忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
/bin:           表示忽略根目录下的bin文件
/*.c:           表示忽略cat.c,不忽略 build/cat.c
debug/*.obj:    表示忽略debug/io.obj,不忽略 debug/common/io.obj和tools/debug/io.obj
**/foo:         表示忽略/foo,a/foo,a/b/foo等
a/**/b:         表示忽略a/b, a/x/b,a/x/y/b等
!/bin/run.sh    表示不忽略bin目录下的run.sh文件
*.log:          表示忽略所有 .log 文件
config.php:     表示忽略当前路径的 config.php 文件
 
/mtk/           表示过滤整个文件夹
*.zip           表示过滤所有.zip文件
/mtk/do.c       表示过滤某个具体文件
 
被过滤掉的文件就不会出现在git仓库中(gitlab或github)了,当然本地库中还有,只是push的时候不会上传。
 
需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中,如下:
!*.zip
!/mtk/one.txt
 
唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。为什么要有两种规则呢?
想象一个场景:假如我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理,那么.gitignore规则应写为::
/mtk/*
!/mtk/one.txt
 
假设我们只有过滤规则,而没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!
注意上面的/mtk/*不能写为/mtk/,否则父目录被前面的规则排除掉了,one.txt文件虽然加了!过滤规则,也不会生效!
 
----------------------------------------------------------------------------------
还有一些规则如下:
fd1/*
说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;
 
/fd1/*
说明:忽略根目录下的 /fd1/ 目录的全部内容;
 
/*
!.gitignore
!/fw/ 
/fw/*
!/fw/bin/
!/fw/sf/
说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;注意要先对bin/的父目录使用!规则,使其不被排除。

GIT命令-团队开发

<<<<<<< HEAD
	你本地的新增的代码
=======
	服务器上和你冲突的代码
>>>>>>> e9609de28b65bf97539f94c6458cdebdf2711c9f

GIT经典协同模型


使用GIT我们应该

提示:


GITHUB使用


oschina使用

编程常见问题汇总

  1. 如何学习编程?
  2. 如何选择一门编程语言?
  3. 如何做好离职交接工作?
  4. 学习编程的算法网站有哪些?
  5. 持续更新 ing

其他

联系我

编程语言学习路线

各种技术的学习路线

整理了一份各个技术的学习路线,需要的小伙伴加我微信:“leader_fengy ”备注“ 学习路线” 即可!

公众号

如果大家想要实时关注我们更新的文章以及分享的干货的话,可以关注我们的微信公众号“代码情缘”。

《C语言保姆级教程》:Go语言保姆级教程》《Git版本控制》PDF 版本在微信公众号后台回复 "书籍" 即可免费领取!

我的公众号