MacOSX上安装Git代码的工作者下载下载地址下载

假如你是做开发,或则你是一个处于工作中写代码的工作者,相信你不会对git陌生,由于你会把自己代码递交,这么你才会用到git,本节重点了解一下Git,以及Git你会在工作中用到的一些命令

Git教程

markdown编辑器的下载

下载地址

Git是目前世界上最先进的分布式版本控制系统(没有之一)。

Git有哪些特征?简单来说就是:高档大气上档次!

安装git

假如你偶然用Debian或UbuntuLinux,通过命令sudoapt-getinstallgit就可以直接完成Git的安装,十分简单。

在MacOSX上安装Git

假如你正在使用Mac做开发,有两种安装Git的方式。

一是安装homebrew,之后通过homebrew安装Git,具体方式请参考homebrew的文档:。

第二种方式更简单,也是推荐的方式,就是直接从AppStore安装Xcode,Xcode集成了Git,不过默认没有安装,你须要运行Xcode,选择菜单“Xcode”->“Preferences”,在弹出窗口中找到“Downloads”,选择“CommandLineTools”,点“Install”就可以完成安装了。

Xcode是Apple官方IDE是苹果官方一款很强悍免费的

在Windows上安装Git

直接在官网进行下载,安装即可,官网链接如下:

安装完成后,在开始菜单里找到“Git”->“GitBash”,蹦出一个类似命令行窗口的东西,就说明Git安装成功!

安装完成后,还须要最后一步设置,在命令行输入:

$gitconfig–globaluser.name”YourName”

$gitconfig–globaluser.email”email@example.com”

由于Git是分布式版本控制系统,所以,每位机器都必须自报家门:你的名子和Email地址。你或许会害怕,假如有人故意假冒他人如何办?这个何必害怕,首先我们相信你们都是善良无知的群众,其次,真的有假冒的也是有办法可查的。

注意gitconfig命令的–global参数,用了这个参数,表示你这台机器上所有的Git库房就会使用这个配置,其实也可以对某个库房指定不同的用户名和Email地址。

图片[1]-MacOSX上安装Git代码的工作者下载下载地址下载-唐朝资源网

创建版本库:

可以简单的理解是创建一个用于储存的目录

makdlrxxxx

cdxxx

pwdxxx

第二步,通过gitinit命令把这个目录弄成Git可以管理的库房:

当你创建OK以后你会看见一个.git的一个目录,这个就是OK了,这个可以Git来跟踪管理版本库的,没事千万不要自动更改这个目录上面的文件,不然改乱了,就把Git库房给破坏了。

假如你没看见这个目录的话,你可以使用命令ls-ah就可以看见

添加文件到Git库房,分两步:

初始化一个Git库房,使用gitinit命令。

使用命令gitadd,注意,可反复多次使用,添加多个文件;

使用命令gitcommit-m,完成。

gitstatus命令可以让我们时刻把握库房当前的状态,里面的命令输出告诉我们,readme.txt被更改过了,但还没有打算递交的更改。

尽管Git告诉我们readme.txt被更改了,但倘若能瞧瞧具体更改了哪些内容,自然是挺好的。例如你放假两周从美国回去,第三天下班时,早已记不清先前如何更改的readme.txt,所以,须要用gitdiff这个命令瞧瞧:

gitdiff

gitlog命令显示从近来到最远的递交日志,我们可以看见3次递交,近来的一次是appendGPL,上一次是adddistributed,最早的一次是wroteareadmefile。

假如嫌输出信息太多,看得眼花缭乱的,可以试试加上–pretty=oneline参数:这儿为了便捷我们直接使用git-log比加上参数愈发的便捷

版本回退:

HEAD指向的版本就是当前版本,因而,Git容许我们在版本的历史之间穿梭,使用命令gitreset–hardcommit_id。

穿梭前,用gitlog可以查看递交历史,便于确定要回挪到那个版本。

要重回未来,用gitreflog查看命令历史,便于确定要回到未来的那个版本。

工作区和暂缓区进行操作:

由于我们创建Git版本库时,Git手动为我们创建了惟一一个master分支,所以,如今,gitcommit就是往master分支上递交修改。

命令gitcheckout–readme.txt意思就是,把readme.txt文件在工作区的更改全部撤消,这儿有两种情况:

一种是readme.txt自更改后还没有被放在暂存区,如今,撤消更改就回到和版本库一模一样的状态;

一种是readme.txt早已添加到暂存区后,又作了更改,如今,撤消更改就回到添加到暂存区后的状态。

其实,就是让这个文件回到近来一次gitcommit或gitadd时的状态。

如今,瞧瞧readme.txt的文件内容:文件内容果然复原了。

gitcheckout–file命令中的–很重要,没有–,就弄成了“切换到另一个分支”的命令,我们在前面的分支管理中会再度遇见gitcheckout命令。

场景1:当你改了工作区某个文件的内容,想直接扔掉工作区的更改时,用命令gitcheckout–file。

场景2:当你不但改乱了工作区某个文件的内容,还添加到了暂存区时,想扔掉更改,分两步,第一步用命令gitresetHEAD,就回到了场景1,第二步按场景1操作。

场景3:早已递交了不合适的更改到版本库时,想要撤消本次递交,参考版本回退一节,不过前提是没有推送到远程库。

命令gitrm用于删掉一个文件。假如一个文件早已被递交到版本库,这么你永远不用害怕删掉,而且要当心,你只能恢复文件到最新版本,你会遗失近来一次递交后你更改的内容。

远程库房:

把本地库的内容推送到远程,用gitpush命令,实际上是把当前分支master推送到远程。

$gitpushoriginmaster

远程联接github库房

假如添加的时侯地址弄错了,或则就是想删掉远程库,可以用gitremoterm命令。使用前,建议先用gitremote-v查看远程库信息:

此处的“删除”其实是解除了本地和远程的绑定关系,并不是数学上删掉了远程库。远程库本身并没有任何改动。要真正删掉远程库,须要登陆到GitHub,在后台页面找到删掉按键再删掉。

要关联一个远程库,使用命令gitremoteaddorigingit@server-name:path/repo-name.git;

关联一个远程库时必须给远程库指定一个名子,origin是默认习惯命名;

关联后,使用命令gitpush-uoriginmaster第一次推送master分支的所有内容;

图片[2]-MacOSX上安装Git代码的工作者下载下载地址下载-唐朝资源网

随后,每次本地递交后,只要有必要,就可以使用命令gitpushoriginmaster推送最新更改;

分布式版本系统的最大用处之一是在本地工作完全不须要考虑远程库的存在,也就是有没有联网都可以正常工作,而SVN在没有联网的时侯是拒绝干活的!当有网路的时侯,再把本地递交推送一下就完成了同步,真是太便捷了!

要克隆一个库房,首先必须晓得库房的地址,之后使用gitclone命令克隆。

Git支持多种合同,包括https,但ssh合同速率最快。

分支管理:

创建和合并分支

gitcheckout命令加上-b参数表示创建并切换,相当于以下两条命令:

之后,用gitbranch命令查看当前分支:

gitbranch命令会列举所有分支,当前分支后面会标一个*号。

如今svn 冲突合并详细解决,我们把dev分支的工作成果合并到master分支上:

由于创建、合并和删掉分支特别快,所以Git鼓励你使用分支完成某个任务,合并后再删除分支,这和直接在master分支上工作疗效是一样的,但过程更安全。

使用新的gitswitch命令,比gitcheckout要更容易理解。

查看分支:gitbranch

创建分支:gitbranch

切换分支:gitcheckout或则gitswitch

创建+切换分支:gitcheckout-b或则gitswitch-c

合并某分支到当前分支:gitmerge

删掉分支:gitbranch-d若果是须要强制进行删掉,那就须要是-D来进行操作

用gitlog–graph命令可以看见分支合并图。

递交分支时科一直接使用gitadd.

合并分支时,加上–no-ff参数就可以用普通模式合并,合并后的历史有分支,能看下来以前做过合并,而fastforward合并就看不下来以前做过合并。

合并分支时每次记得都先切换到须要合并的分支

修补bug时,我们会通过创建新的bug分支进行修补,之后合并,最后删掉;

当手头工作没有完成时,先把工作现场gitstash一下,之后去修补bug,修补后,再gitstashpop,回到工作现场;

在master分支上修补的bug,想要合并到当前dev分支,可以用gitcherry-pick命令,把bug递交的更改“复制”到当前分支,防止重复劳动

Festure分支

要查看远程库的信息,用gitremote:或则svn 冲突合并详细解决,用gitremote-v显示更详尽的信息:

当你的男子伴从远程库clone时,默认情况下,你的男子伴只能见到本地的master分支。不信可以用gitbranch命令瞧瞧:

如今,你的男子伴要在dev分支上开发,就必须创建远程origin的dev分支到本地,于是他用这个命令创建本地dev分支:

$gitcheckout-bdevorigin/dev

如今,他就可以在dev上继续更改,之后,经常地把dev分支push到远程:

为此,多人协作的工作模式一般是这样:

首先,可以企图用gitpushorigin

推送自己的更改;

假如推送失败,则由于远程分支比你的本地更新,须要先用gitpull企图合并;

假如合并有冲突,则解决冲突,并在本地递交;

没有冲突或则解决掉冲突后,再用gitpushorigin

推送能够成功!

假如gitpull提示notrackinginformation,则说明本地分支和远程分支的链接关系没有创建,用命令gitbranch–set-upstream-to

origin/

这就是多人协作的工作模式,一旦熟悉了,就十分简单。

查看远程库信息,使用gitremote-v;

本地新建的分支若果不推送到远程,对其他人就是不可见的;

从本地推送分支,使用gitpushoriginbranch-name,假如推送失败,先用gitpull抓取远程的新递交;

在本地创建和远程分支对应的分支,使用gitcheckout-bbranch-nameorigin/branch-name,本地和远程分支的名称最好一致;

构建本地分支和远程分支的关联,使用gitbranch–set-upstreambranch-nameorigin/branch-name;

从远程抓取分支,使用gitpull,假如有冲突,要先处理冲突。

rebase

rebase操作可以把本地未push的分叉递交历史整理成直线;

rebase的目的是促使我们在查看历史递交的变化时更容易,由于分叉的递交须要三方对比。

标签管理:

tag

命令gittag用于新建一个标签,默认为HEAD,也可以指定一个commitid;

命令gittag-a-m”blablabla…”可以指定标签信息;

命令gittag可以查看所有标签。

标签是指向commit的死表针,分支是指向commit的活表针

命令gitpushorigin可以推送一个本地标签;

命令gitpushorigin–tags可以推送全部未推送过的本地标签;

命令gittag-d可以删掉一个本地标签;

命令gitpushorigin:refs/tags/可以删掉一个远程标签。

忽视个别文件时,须要编撰.gitignore;

.gitignore文件本身要放在版本库里,但是可以对.gitignore做版本管理!

© 版权声明
THE END
喜欢就支持一下吧
点赞90 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片