Git 安装与使用 Day48 2019-01-07

Git 安装与使用

一、基本操作

1. 下载安装

下载对应的Git版本安装

2. 配置Git

打开Git bash,配置用户名及邮箱

$ git config --global user.name "My Name"
$ git config --global user.email  "myEmail@example.com"

3. 创建一个新仓库 – git init

git会把所有文件以及历史记录直接记录成一个文件夹保存在你的项目中。

创建一个新的仓库,首先要去到项目路径下,执行git init。这时Git会创建一个隐藏的文件夹.git,所有的历史和配置信息都储存在其中。

$ cd /c/Users/zgldo/doinggit
$ git init 

命令行出现

Initialized empty Git repository in /c/Users/zgldo/doinggit/.git/

这说明我们的仓库已经建立好了,但现在是空的,试着新建一个文件(例如:README.md)到这个文件夹里。

4. 检查状态 – git status

4.1 git status说明

Git status是另一个非常重要的命令,它反馈给我们仓库当前状态的信息:是否为最新代码,有什么更新等等。在我们新建的仓库中执行git status会得到以下内容:

Git_status命令结果
image

反馈信息告诉我们,(例如:README.md)尚未跟踪,这是说这个文件是新的,git不知道是应该跟踪它的变动还是直接忽略。为了跟踪我们的新文件,我们需要暂存它。

4.2 中文显示问题

在默认设置下,中文文件名在工作区状态输出,中文名不能正确显示,而是显示为八进制的字符编码。如上图。
通过将git配置变量 core.quotepath 设置为false,就可以解决中文文件名称在这些Git命令输出中的显示问题:

$ git config --global core.quotepath false
Git_status_中文显示

5. 暂存 – git add

Git有个概念叫“暂存区“,你可以把它看成一块空白的画布,包裹着所有你可能会提交的变动。它一开始是空的,可以通过 git add命令添加内容,最后使用 git commit 提交(创建一个快照)。

这个例子中只有一个文件,让我们先add它:

$ git add README.md

如果需要提交目录下的所有内容,可以这样做:

$ git add -A # 提交所有变化
$ git add -u # 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)
$ git add .  # 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

再次使用git status查看状态试试:

Git_add_之后的status

我们的文件已经准备好可以提交了。状态信息还告诉我们暂存区文件发生了什么变动,这里我们新增了一个文件,同样可以做修改和删除。取决于我们在上一次git add之后发生了什么。

6.提交 – git commit

一次提交代表着我们的仓库到了一个新的状态,就像是一个快照,允许我们像使用时光机一样回到之前的某个时间点。

创建提交,需要我们至少在到暂存区有一次修改(刚才我们做了git add),然后输入命令:

$ git commit -m "修改注释."

这就创建了一次从暂存区的提交(加入README.md),-m “修改注释.”是用户对这次提交的描述,建议写成有意义的描述性信息。

7. 查看修改内容

$ git diff 文件名+类型
查看修改内容

8. 查看文件内容

$ cat 文件名
查看文件内容

二、远程仓库

到目前为止,我们的操作都是在本地的——只存在于.git文件中。为了能够协同开发,我们需要把代码部署到远程仓库服务器上。

1. 链接远程仓库 – git remote add

为了能够上传到远程仓库,我们需要先建立起链接。在这篇教程中,我们远程仓库的地址为:https://github.com/zgldoing/DoingGit.git。但你应该自己在Github、或BitBucket上搭建仓库,自己一步一步尝试。

把本地仓库链接到Github上,在命令行执行以下内容:

# This is only an example. Replace the URI with your own repository address. 
$ git remote add origin https://github.com/zgldoing/DoingGit.git

一个项目可以同时拥有好几个远程仓库,为了区分通常会起不同的名字。通常主要的远程仓库被称为origin

2.上传到服务器 – git push

把本地的提交传送到服务器的动作叫做push。每次我们要提交修改到服务器上时,都会使用到git push

git push命令有两个参数,远程仓库的名字,以及分支的名字:

# $ git push origin master 
$ git push
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 297 bytes | 297.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/zgldoing/DoingGit.git
   7e26bc1..3ec5f5d  master -> master

取决于你使用的服务器,push过程中你可能需要验证身份(输入用户名、密码,请先在网站上进行注册)。如果没有出差错,现在用浏览器看你的远程仓库上已经有README.md了。

3.克隆仓库 – git clone

其他人可以看到你放在Github上的开源项目,他们可以用git clone命令下载到本地。

$ git clone https://github.com/zgldoing/DoingGit.git

本地也会创建一个新的仓库,并自动将github上的版本设为远程仓库。

4.从服务器上获得修改 – git pull

如果你更新了远程仓库上的内容,其他人可以通过git pull命令拉取你的变动:

$ git pull origin master 
From https://github.com/zgldoing/DoingGit.git
* branch            master     -> FETCH_HEAD 
Already up-to-date.

因为在我们git clone之后还没有提交过修改,所有没有任何变动。

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

推荐阅读更多精彩内容

  • Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来。这样一来,任何一处协同...
    __silhouette阅读 15,846评论 5 147
  • Git 命令行学习笔记 Git 基础 基本原理 客户端并不是只提取最新版本的文件快照,而是把代码仓库完整的镜像下来...
    sunnyghx阅读 3,897评论 0 11
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 12,638评论 4 54
  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 3,485评论 0 13
  • 对于“尊重”这条基本而又浅显的育儿理论我是完全不陌生的,甚至我还总自以为是地认为这于我来说就是小case。直到最近...
    用心一二阅读 392评论 0 0