Git基础一

版本库的创建:

git status

检验当前文件状态

image.png

进入某个文件夹,然后用git status检验一下,发现会提示我们当前文件夹并未设置 GIT_DISCOVERY_ACROSS_FILESYSTEM。就是当前文件夹不是git仓库。如何创建git 仓库呢?

git init

先创建个空文件夹

image.png

对文件件初始化:

image.png

此时我们用: ls -a 查看当前文件夹下所有文件,会发现个隐藏文件.git

image.png

注:其中“.”和".."是linux下的一种隐藏文件分别代表当前文件夹和上一级文件夹
我们现在尝试着删除.git文件会怎样,

frc@frc:~/GitHub/study/GitStudy$ rm -rf .git/
frc@frc:~/GitHub/study/GitStudy$ ls
frc@frc:~/GitHub/study/GitStudy$ ls -a
.  ..

此时再用“git status” 来看看:

frc@frc:~/GitHub/study/GitStudy$ git status
fatal: 不是一个 git 仓库(或者向上递归至挂载点 /home 的任何祖先目录)
停止在文件系统边界(未设置 GIT_DISCOVERY_ACROSS_FILESYSTEM)。

我们发现它又说当前不是git仓库,这说明git init其实就是生成了.git文件目录。

我们来看看.git里到底有些什么:

frc@frc:~/GitHub/study/GitStudy/.git$ ls -a
.  ..  branches  config  description  HEAD  hooks  info  objects  refs

有文件夹有文件,用过git的会在这发现些熟悉的关键字,比如说:branches, HEAD等。
对这些文件先不做详解。后面会一一分析

git add

image.png

我们用git status 查看当前的git空仓库,会有三行提示,其中最后一行告诉我们创建/拷贝文件并使用** git add** 建立跟踪

我们在当前仓库内创建个REDME.text文件:

frc@frc:~/GitHub/study/GitStudy$ vi REDME.text

然后在里面随便写句话:

image.png

此时我们输入git status看看:

image.png

此时我们会发现我们新创建的REDME.text文件显示为红色,并告诉我们尚存在未跟踪的文件,so 我们就按它指示用git add来试试:

frc@frc:~/GitHub/study/GitStudy$ git add
没有指定文件,也没有文件被添加。
也许您想要执行 'git add .'?

我们输入git add ,它提示我们没有指定文件,那么我们来指定下:

image.png

注解:git add . 是将当前仓库下所有未被追踪的都追踪上

我们指定了REDME为追踪文件,然后看到REDME.text变成绿色了。并且提示我们REDME.text是要提交的变更,并且可以使用 "git rm --cached <file>..." 撤出暂存区。
这里有个关键字暂存区,很重要的一个概念,下一篇我们再细讲。

git commit

上面提示中有说到:REDME.text现在是要提交的变更,那么现在我来提交它,提交的命令是git commit,

image.png

这里它会让我们提交变更的说明。
真实开发中我们可以用 git commit -m"xxxxx"来替代,可以直接在双引号中输入提交说明。

frc@frc:~/GitHub/study/GitStudy$ git commit
[master f697f00]   first commit again
 1 file changed, 1 insertion(+), 1 deletion(-)
frc@frc:~/GitHub/study/GitStudy$ git status
位于分支 master
无文件要提交,干净的工作区
frc@frc:~/GitHub/study/GitStudy$ 

commit 之后再调git status它提示我们当前是个干净的工作区了。

git commit -a -m

每次提交文件,需要git add 和git commit 对于老司机有些繁琐。我们明确知道当前文件需要提交的时候可以跳过git add 即不将文件放入暂存区。直接使用 git commit -a -m"xxx提交说明xxxx" 来提交
我们在REDME.text中加上"test git commit -a -m"这句话来测试

frc@frc:~/GitHub/study/GitStudy$ git diff
diff --git a/REDME.text b/REDME.text
index 5da4642..55070be 100644
--- a/REDME.text
+++ b/REDME.text
@@ -1,3 +1,4 @@
 //////
       welcome to study git!
 test git diff
+test git commit -a -m
frc@frc:~/GitHub/study/GitStudy$ git commit -a -m"test git commit -a -m"
[master 26de8cf] test git commit -a -m
 1 file changed, 1 insertion(+)

我们看到我们提交成功了

git diff

如果你想知道当前具体修改了哪些内容,那么使用git status不够用了,此时我们需要用到git diff来查看,git diff 将通过文件补丁的格式显示具体哪些行发生了改变。
现在我们对REDME.text改些东西:

image.png

现在我们使用git diff 来看看:

frc@frc:~/GitHub/study/GitStudy$ git diff
diff --git a/REDME.text b/REDME.text
index 8753674..5da4642 100644
--- a/REDME.text
+++ b/REDME.text
@@ -1 +1,3 @@
+//////
       welcome to study git!
+test git diff

首先:git diff 本身只显示尚未暂存的改动,而不是自上次提交以来所做的所有改动。
其中+符号后面就是这次添加的内容,
我在运行下 git add 将变化加入暂缓区,此时再使用 git diff 发现什么都不显示了。

查看已存在暂缓区的变动,需要用到 git diff --cached或者git diff --staged两者效果一样:

frc@frc:~/GitHub/study/GitStudy$ git diff --cached
diff --git a/REDME.text b/REDME.text
index 8753674..5da4642 100644
--- a/REDME.text
+++ b/REDME.text
@@ -1 +1,3 @@
+//////
       welcome to study git!
+test git diff

记得将它提交。

frc@frc:~/GitHub/study/GitStudy$ git add .
frc@frc:~/GitHub/study/GitStudy$ git commit -m"test git diff"
[master 3d0a19a] test git diff
 1 file changed, 2 insertions(+)

[master 3d0a19a] test git diff :告诉我们提交到主分支了,commit_id 是3d0a19a,
1 file changed, 2 insertions(+):修改了一个文件,2个插入。

git rm

对于一个已经提交 过的文件,我们在磁盘上把它删除会怎样呢?
首先我们先创建一个只有"test for git rm"一句话的文件,命名为testForGitRm.txt。然后git add 。再到文件夹中去把这个文件删除。现在运行git status

frc@frc:~/GitHub/study/GitStudy$ git add testForGitRm.txt 
frc@frc:~/GitHub/study/GitStudy$ git status
位于分支 master
要提交的变更:
  (使用 "git reset HEAD <file>..." 撤出暂存区)

    新文件:   testForGitRm.txt
frc@frc:~/GitHub/study/GitStudy$ git commit -m"test for git rm"
[master 7024df8] test for git rm
 1 file changed, 2 insertions(+)
 create mode 100644 testForGitRm.txt

现在删除testForGitRm文件

如果只是简单地从工作目录中手工删除文件,运行 git status 时就会在 “尚未暂存以备提交的变更” 部分(也就是 未暂存清单)看到:

frc@frc:~/GitHub/study/GitStudy$ git status
位于分支 master
尚未暂存以备提交的变更:
  (使用 "git add/rm <file>..." 更新要提交的内容)
  (使用 "git checkout -- <file>..." 丢弃工作区的改动)

    删除:     testForGitRm.txt

然后再运行 git rm 记录此次移除文件的操作,下一次提交时,该文件就不再纳入版本管理了:

frc@frc:~/GitHub/study/GitStudy$ git rm testForGitRm.txt
rm 'testForGitRm.txt'
frc@frc:~/GitHub/study/GitStudy$ git status
位于分支 master
无文件要提交,干净的工作区

其实就是告诉git我已经移除了这个文件。

另外一种情况是,我们想把文件从 Git 仓库中删除(亦即从暂存区域移除),但仍然希望保留在当前工作目录中。我们可以使用**git rm --cached **

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

推荐阅读更多精彩内容

  • git常用命令 GIT常用命令备忘:http://stormzhang.com/git/2014/01/27/gi...
    新篇章阅读 8,384评论 1 26
  • 有时候,大人们没有爽快的答应,就是委婉的拒绝了。 有时候,有些人一旦错过了,真的是谢天谢地。
    Candy果阅读 247评论 0 1
  • 个体的贫困,也许可以以颜回式的“一箪食,一瓢饮,在陋巷,人不堪其忧,回也不改其乐”来化解,但是面对至亲的苦难,却没...
    tigersmart阅读 202评论 1 2
  • 两个月前,我写了一篇文章《如何提升你的认知能力》,这是我在读完成甲老师《好好学习》这本书后写的一篇读书笔记。 当时...
    vinlson阅读 953评论 1 50
  • 以上的配色,一般遵循四种配色方案:VI色、行业色、主题色、领导色 色已包含在最初整体的VI系统设计之内,最直观体现...
    风信子逸轩阅读 1,233评论 4 40