DevWeekly汇整每星期高质量密切合作开发人员文本,主要包括开放源码工程项目、辅助工具天然资源、控制技术该文等各方面,每星期日首秀于GitHub – Jackpopc/DevWeekly: 每星期日正式发布,优选高质量密切合作开发人员文本,主要包括开放源码工程项目、辅助工具天然资源、控制技术该文等各方面。,热烈欢迎我们Star并珍藏!
提出诉讼Git就绕不行两个基本概念:版控制控制技术。
因此,在自学Git以后有必要性先介绍呵呵版控制系统的基本概念,这种才会有两个更为自上而下明晰的重新认识。
1 版控制控制技术
版控制控制技术是用以追踪、制做和管理工具标识符变动的辅助工具。它能协助密切合作开发人员存储不同期对文档所做的每两个更动,这种他们、或是与他们协同密切合作开发的同僚就可以在索引到这些更动。
目前主要包涵3种类别的版控制控制技术:
邻近地区版控制控制技术封闭式版控制控制技术分布式控制系统版控制控制技术上面,就分别如是说呵呵这3种版控制控制技术。
1.1 邻近地区版控制控制技术
邻近地区版控制控制技术是坐落于你邻近地区计算机控制系统上的两个邻近地区资料库,其中每一文档的变动都以插件的形式存储。
每两个插件集只包涵科散囊一版以来对该文档所做的修正。
为了看见文档在任何人取值关键时刻的模样,有必要性将文档的大部份相关插件按次序详列在一同,直至逐一查阅找出相关联的版年末。
邻近地区版控制控制技术有两个十分大的问题,大部份东西都存储在邻近地区。假如邻近地区资料库出了甚么难题,大部份的插件单厢遗失。假如两个版发生了甚么事,那么这个版之后的大部份修正单厢遗失。
除此之外,与其他密切合作开发人员或项目组密切合作是十分十分困难的。
1.2 封闭式版控制控制系统
集中的版控制控制技术有两个包涵大部份文档版的服务器,多个用户可以同时访问服务器上的文档,把它们拉到他们的邻近地区计算机控制系统上,或是从他们的邻近地区计算机控制系统上把它们推到服务器上。
相对邻近地区版控制控制技术,这与其他密切合作开发者或项目组的密切合作变得容易。
这种结构的最大难题是,大部份东西都存储在封闭式服务器上。假如该服务器出了难题,没有人可以保存他们的版变动,拉动文档或进行协同。
与邻近地区版控制类似,假如资料库被破坏,而备份没有被保留,你就会失去整个工程项目的历史,除了人们碰巧在他们的邻近地区机器上有的单一快照。
比较知名的封闭式版控制控制技术有Microsoft Team Foundation Server (TFS)和SVN。
1.3 分布式控制系统版控制控制技术
有了分布式控制系统版控制控制技术,用户不仅是从服务器上拉取最新的文档快照,而是一种完全镜像存储库,主要包括全部历史。
因此,在两个工程项目上密切合作的每一人都拥有整个工程项目的邻近地区拷贝,换句话说,拥有自己的邻近地区资料库和自己的完整历史。
在这种模式下,假如服务器变得不可用或出了难题,任何人两个用户天然资源库都可以将工程项目的版拷贝发送给其他用户,或是在服务器可用时再推回到服务器上。只要两个用户包涵两个正确的副本就足够了。
而Git就是两个免费的开放源码分布式控制系统版控制控制技术,你可以用它来追踪文档的变动。
它可以实现对版库的新增、修正、删除等操作。假如做了修正,那么由谁做的?在甚么时间和日期做的?做这个修正的原因是甚么?
Git单厢记下这些行为,所以,总结而言,Git具有如下功能:
可以追踪仓库变动可以提交、撤销、修正工程可以创建两个工程项目的多个副本,每一副本都可以单独处理不同副本中的变动可以被比较,也可以被合并2 为甚么用Git?
在做两个有许多组件的大工程项目时,往往会有多个密切合作开发人员参与,每一密切合作开发人员都可以通过Git来对工程项目标识符进行管理。
例如,新增了功能之后可以用以提交标识符,假如操作失误可以撤销动作,也可以看见工程项目经历了哪些变动。
换句话说,通过Git,他们可以更为轻松便捷的管理标识符仓库,实现协同密切合作开发。
介绍了Git的价值和作用,上面就来安装Git并开始用起来吧!
2.1 安装Git
假如想要在他们的电脑上安装Git,可以访问Git的官方网站上下载适合你的操作控制系统的最新版Git,它支持Windows、macOS、Linux/Unix。
下载后,按照不同操作控制系统的软件安装方式安装该软件,这与安装其他软件一样,以Windows为例,下载后双击安装即可,每一选项都可以选择默认,然后点击下一步。
安装完成后,打开cmd(命令提示符)或终端,输入上面命令来检查git是否已经安装完毕:
git –version假如返回了上图中的信息,说明已经安装成功。
3 使用Git
通过前面的步骤已经完成了Git的安装,接下来就是自学如何使用Git。
但是,在正式使用以后,还有一件事需要做,他们需要对Git进行呵呵配置。
他们需要设置用户名和电子邮件地址,Git 会用它来识别谁做的修正。
3.1 Git配置
如前面所述,他们需要在Git中配置呵呵用户名和电子邮箱,可以通过如下命令完成配置:
git config —global user.name “YOUR_USERNAME” git config —global user.email “YOUR_EMAIL_ADDRESS”这里一定要确保在相应的字段输入正确的用户名和电子邮箱地址。
3.2 Git初始化
Git已经安装了,但是,当你创建两个名为“Git tutorial”目录时,你会发现它和正常的目录没甚么区别,他们执行git命令也不起作用。
这是因为还没有进行Git初始化。
要是仓库真正起作用,他们需要进入到相应的目录,执行上面初始化命令:
git init现在 Git 可以正式工作了。
4 Git命令
前面反复提到,他们使用过程中经常用于标识符的提交、修正、撤掉等操作,这时候就需要用到一些Git命令。
上面,就来如是说一些Git中常用的命令。
4.1 git status
这将告诉你使用该命令时工程项目的状态,你做了哪些修正、哪些尚未提交等。
例如,假如我在前面已经创建的Git tutorial文档夹中添加了两个新文档,Git and Github blog cover.png和Superhero Git.png,然后执行命令,就可以看见上面输出信息:
git status上图中的提示信息表示,他们新增了两个文档,但是还没有提交(commit)。
4.2 git add
如前面提示的那样,他们新增了两个文档,但是Git并没有追踪到,这时候就需要他们来高速Git新增了文本,然后它才可以追东文档夹的变动。
有两种方法可以做到这一点,一是把大部份新增文档全都添加上去,另两个就是添加指定文档:
添加大部份文档
git add .添加指定文档
git add “file_name”接下来再使用git status命令来看看在我把 “Git and Github blog cover.png “添加到 Git 之后发生了甚么:
这里你可以看见,现在 Git 识别出我添加了两个新文档。但是,仍然没有提交。
顺便,来讲呵呵Git的不同状态。
Git将该文状态分为如下几类:
UnstagedStagedCommittedModified当文档没有被添加到 Git 时,它处于unstaged状态。
当文档用git add “file_name “添加到Git中时,它处于staged状态。在这种状态下,大部份必要性的修正都已经完成,可以提交了。
当他们用git commit -m “commit message “命令保存工程项目的状态,点击工程项目的快照,这个状态就被称为Committed状态。通过创建两个提交,你的工作被保存在邻近地区,假如将来你的工程项目出现一些难题,你可以很容易的回滚到以后的版。
当他们对提交的文档进行修正时,它就进入了Modified状态。
4.3 git commit
在解释这个命令以后,首先在 “Git tutorial “文档夹中添加两个 “sample.txt “文档,并将该文档夹中的大部份文档使用git add .命令添加Git。
添加完大部份文档后,他们将用命令创建他们的第两个提交:
git commit -m “commit message”现在当你看见git状态时,它会说 “nothing to commit, working tree is clean”,这意味着大部份的文档和所做的修正都被保存了。
两个提交就像账本上的两个条目,包涵以下信息:
用户名和电子邮箱提交的日期和时间提交信息此次提交的唯一哈希码他们可以通过如下命令查阅这些提交信息:
gitlog这将给你返回工程项目中大部份提交的信息。
这种,他们就完成了一次标识符提交。
4.4 git branch
Git 分支是两个十分强大的功能,也是两个需要介绍的重要功能。
Git有一些使用十分频繁的场景,用它为工程项目创建多个副本,并允许你分别对它们进行操作,Git就是通过分支实现了这一点。
检查工程项目中的分支
git branch创建两个新的分支
git branch “branch_name”这将创建两个新的 Git 分支,他们的整个工程项目将被复制到该分支。
现在,当他们检查工程项目中的分支时。他们会看见两个新的分支 “my_branch”。
然而,你可以看见星号(*)仍在main分支上,这意味着你仍然在工程项目的主分支(主副本)上工作,而不是在新的分支上。
要切换到新的分支,需要用到checkout命令:
git checkout “branch_name”可以看见,它已经切换到了新分支my_branch。
在这个分支中,你可以做任何修正,它不会影响工程项目的主分支文本。
Git的命令有很多,这里只是简单的如是说了4个比较常用的命令,用以高速我们Git是如何工作的。
假如对Git其他命令感兴趣,推荐看呵呵一篇该文Git Cheat Sheet,这篇该文里详细的如是说了50个会用到的Git命令。
5. 辅助辅助工具
没有完美无暇的辅助工具,git也是,当然,有些功能仅仅依赖git是无法完成的。
一些强大的辅助辅助工具能让密切合作开发过程中事半功倍,效率得到极大的提高,上面就来如是说2款git辅助/增强辅助工具。
5.1 tig
Tig是两个基于ncurses的git文本模式接口。它的功能主要是作为两个Git存储库浏览器,但也可以协助在块级别上分段提交更改,并充当各种Git命令输出的分页器。
5.2 oh-my-zsh
“Your terminal never feltthisgood before.”
提到命令行辅助工具,首推的自然是这款大杀器,bash的替代辅助工具。bash算得上一款中规中矩的shell辅助工具,没有甚么缺陷,但是也谈不上优秀,在很多各方面考虑的还不够周到,例如,自动补全、语法、高亮显示、提示符等。
提到oh-my-zsh,那就厉害了,102kStar、250+插件、125+主题、1450+贡献者……从这一系列的数字中就可以体现出这款shell辅助工具的生态有多么完善,也足以体现它有多么强大。
zsh是一款bash替代辅助工具,为甚么却在这里提及呢?
因为,它的确在git的使用过程中提升了十分大的效率。
当他们在Linux下密切合作开发时,默认的命令提示符是不指示分支信息和修正状态的,当然,通过修正Linux配置文档写两个函数也可以实现这项功能。
但是,我还是更推荐使用oh-my-zsh,像上面这种,