GIT学习笔记(二)
前言:最近团队里开始使用GIT代替SVN进行项目管理,虽然之前公司也用过GIT一段时间,但是用的较浅。现在趁着机会好好再学习加深一把...
存档点:https://git-scm.com/book/zh/v2/Git-%E5%9F%BA%E7%A1%80-%E6%80%BB%E7%BB%93
SVN与GIT的差异
1.集中化和分布式区别
2.一个是在本地只保留某一个版本的文件,一个是保留整个仓库包括所有提交记录
3.GIT创建branch更强大,分支之间的交互(本体、远端)更方便
4.SVN储存的是各个版本的文件差异,而GIT存储的是各个版本的快照
GIT起源
当时对GIT制定的几个目标:
.速度
.简单的设计
.对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
.完全分布式
.有能力高效管理类似 Linux 内核一样的超大规模项目(速度和数据量)
目前这些特性(速度飞快,极其适合管理大项目,有着令人难以置信的非线性分支管理系统),成为他赶超其它版本控制工具的一个核心竞争力
GIT的配置:
1.系统配置: --system选项
2.用户配置: --global 选项
3.仓库配置:直接读取目录下的config文件
.gitignore:在仓库下建立这个文件,可以适应正则表达式忽略指定文件 [官方模板:https://github.com/github/gitignore]
关于GIT的命令:
git add: 将这个命令理解为“添加内容到下一次提交中”而不是“将一个文件添加到项目中”要更加合适.[git status -s]
git commit: 暂存区的快照提交,[-m]可以附上注释,[-a]可以提交所有本地已跟踪的文件(修改但未add的),从而跳过git add步骤
git rm:从暂存区里删除文件,[-f]强制删除修改过的文件,[--cached]从暂存区中删除,但不从本地删除。
git mv:改名,其实原理就是先删后加(相当于执行了git rm和git add命令)
git log:日志,[-p]显示差异,[-数字]显示要看的记录数,[--pretty=forma]指定格式
git branch:查看\创建分支\删除分支
git checkout:切换到分支
pull = fetch + merge
变基:结果和使用merge合并相同,但是改版了历史记录。所以针对想要整理一份完美提交历史的时候,是需要变基的。反之,如果看重的是记录真实过程,则应该用合并。(个人理解,程序员用合并,版本发布用变基更多)
学习资料:
1.https://git-scm.com/book/zh/v2/ 《官方手册》
2.http://www.cnblogs.com/cnblogsfans/p/5075073.html《Git 在团队中的最佳实践--如何正确使用Git Flow》
附录:重新组织git本地提交的方法
IDEA版:
https://www.zhihu.com/question/56624823/answer/149908775
(里面介绍了多种整理合并本地提交的方法,亲测可用)
命令行版:
http://www.jianshu.com/p/964de879904a
http://yongpoliu.com/reorganize-git-local-commits/
(也可以通过官方教程学习,我这里找了2篇写的比较详细的教程)

浙公网安备 33010602011771号