Git基础知识

Git 一般只添加数据

你执行的Git操作,几乎只往Git数据库中添加数据。很难让Git执行任何不可逆操作,或者让它一任何方式清除数据。同别的VCS一样,未提交更更新是有可能丢失或弄乱修改的内容;但是你提交快照到Git中,就难以再丢失数据。

三种状态

Git有三种状态:已提交、已修改和已暂存

已提交

表示数据已安全存到本地数据库中。

已修改

表示修改了文件,但还没有保存到数据库中

已暂存

表示对一个一修改文件的当前版本做了标记,使之包含在下次提交的快照中

三个工作区域


Git仓库

是Git用来保存项目的元数据和对象数据库的地方。这是Git中最重要的部分,从其他计算机克隆仓库时,拷贝的就是这里的数据

工作目录

工作目录是对项目的某个版本独立提取出来的内容。从这些Git仓库的压缩数据库中提取出来的文件,放在磁盘上供你使用或修改

暂存区域

是一个文件夹,保存了下次提交的文件列表信息,一般在Git仓库目录中。

基本的Git工作流程是这样的:

您修改工作树中的文件。

您可以选择性地暂存您希望成为下一次提交一部分的更改,这些更改只会将这些更改添加到暂存区域。

您执行提交,它将文件保存在暂存区域中,并将该快照永久存储到您的Git目录中。

如果文件的特定版本在Git目录中,则认为它已提交。如果它已被修改并添加到暂存区域,则会暂存。如果它已经签出但是没有上演,那么它会被修改。

安装Git(mac)

brew install git

Git附带了一个名为的工具git config,可让您获取和设置控制Git外观和操作方式的配置变量。这些变量可以存储在三个不同的地方:

/etc/gitconfigfile:包含应用于系统上每个用户及其所有存储库的值。如果将选项传递--system给git config,则会专门从此文件读取和写入。(因为这是系统配置文件,您需要管理员或超级用户权限才能对其进行更改。)

~/.gitconfig或~/.config/git/config文件:用户个人特定的值。您可以通过传递--global选项使Git专门读取和写入此文件,这会影响您在系统上使用的所有存储库。

config在.git/config您当前使用的任何存储库的Git目录(即)中的文件:特定于该单个存储库。您可以强制Git使用该--local选项读取和写入此文件,但这实际上是默认值。(不出所料,您需要位于Git存储库中的某个位置才能使此选项正常工作。)

安装Git时应该做的第一件事是设置用户名和电子邮件地址。这很重要,因为每个Git提交都使用这些信息,并且它会不可避免地融入您开始创建的提交中:

$ git config --global user.name "John Doe"

$ git config --global user.email johndoe@example.com

再次,如果您通过该--global选项,则只需执行一次,因为Git将始终将该信息用于您在该系统上执行的任何操作。如果要使用特定项目的其他名称或电子邮件地址覆盖此项,则可以在该项目中运行不带--global选项的命令。

获取Git仓库

获取Git仓库有两种方法。第一种是在现有目录或目录下导入所有文件到Git中,第二种是从一个服务器克隆到一个现有的Git仓库

从现有目录中初始化仓库

进入该项目目录并输入:

$ git init

这将创建一个名为的新子目录.git,其中包含所有必需的存储库文件 - Git存储库框架。此时,您的项目中没有任何内容被跟踪。

如果要启动版本控制现有文件(而不是空目录),则应该开始跟踪这些文件并执行初始提交。您可以使用一些git add指定要跟踪的文件的命令来完成此操作,然后执行以下操作git commit:

$ git add *.c

$ git add LICENSE

$ git commit -m 'initial project version'

我们将在一分钟内了解这些命令的作用。此时,您有一个包含跟踪文件和初始提交的Git存储库。

克隆现有存储库

如果您想获得现有Git存储库的副本 - 例如,您想要贡献的项目 - 您需要的命令是git clone。如果您熟悉其他VCS系统(如Subversion),您会注意到该命令是“克隆”而不是“结帐”。这是一个重要的区别--Git只接收服务器拥有的几乎所有数据的完整副本,而不仅仅是获得一个工作副本。运行时,默认情况下会删除项目历史记录的每个文件的每个版本git clone。事实上,如果您的服务器磁盘损坏,您通常可以使用任何客户端上的几乎任何克隆来将服务器设置回克隆时的状态。

您使用克隆存储库git clone <url>。例如,如果要克隆调用的Git可链接库libgit2,可以这样做:

$ git clone https://github.com/libgit2/libgit2

这将创建一个名为的目录libgit2,初始化其中的.git目录,下拉该存储库的所有数据,并检出最新版本的工作副本。如果你进入libgit2刚刚创建的新目录,你会看到那里的项目文件,准备工作或使用。

如果要将存储库克隆到名称之外的目录中libgit2,可以将新目录名称指定为附加参数:

$ git clone https://github.com/libgit2/libgit2 mylibgit

该命令与前一个命令的作用相同,但调用目标目录mylibgit。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352

推荐阅读更多精彩内容

  • 对年轻人来说,谈论爱情不仅成了一种需求,更是一种时尚。我们渴望爱,追索爱,在得到时喜悦癫狂,在失去时堕落绝望。可事...
    Jellyyyy阅读 1,074评论 1 0
  • 原文链接:http://www.jianshu.com/p/de7806f6143b 简记:1.command 用...
    by小杰阅读 294评论 0 0
  • 浮梦层峦新黛影,落红白雨半孤寒。 沾衣欲湿幕帷起,谁抱琵琶信手弹。 (七言绝句 押寒韵)
    玉宇笙寒阅读 154评论 0 1
  • #### javascript的组成 ```js 1.ECMAScript 2.Dom 文档对象模型(Dom,D...
    练习拥抱阅读 251评论 0 0