用Git进行版本控制(一)配置

前言:
坦白讲,到目前为止, 我在全职的工作中还没有使用Git进行版本控制的开发,
只是自己没事儿在上面搞一搞,用的并不多,学习得并不系统,一直就知道udcacity上
有免费的Git和GitHub相关的教程,讲解得很不错,一直拖拖拖,没有去学习,今天
趁着给小电车充电的间隙(5个多小时慢充时间里)在咖啡馆里坐着,就把视频给看了,记录下笔民,本笔记的所有内容均来自Udcacity(thanks alot)

工作中,我一直在使用SVN进行版本控制多人协作开发,SVN是中心式的,
而Git则是分布式的,基本上几十种版本控制系统,主要分为这两类:

image.png

集中式模型(Centralized) - 所有用户都连接到一个中央的主仓库(master repository)
分布式模型(Distributed) - 每个用户都在自己的计算机上拥有完整的仓库(repository)

image.png
image.png

Git和GitHub是两个不同的东西。

image.png

Git是版本控制系统,工具,核心,唯一

GitHub是一项Git服务,用于拖管Git项目的,所以类似于GitHub的服务会有很多种,
你使用Git项目,不是必须要使用GitHub的,只是GitHub在用户量以及知名度,技术等等层面上,是目前最好的Git服务。

关键术语:

https://udacity.github.io/frontend-nanodegree-styleguide-zh/udacity-git-keyterms.pdf

提交(commit or snapshot):
Git 的数据就像一组迷你文件系统的快照。每次在 Git 中提交或保
存项目状态时, Git 会立刻对所有文件进行拍照,并存储这组快照的索引。

仓库Repository (repo):
一个包含项目工作以及用于与 Git 联络的文件(在 Mac OS X 中默认隐
藏)的目录,既可存在于本地计算机上,也可作为另一台计算机的远程副本。

工作目录Working Directory:
即计算机文件系统中的文件。当你在代码编辑器中打开项目文件时,就是在
处理工作目录中的文件。我们checkout的文件或目录就存放在working directory中,
是本地的一个文件夹。保存当前的项目的源码和资源。

检出(不存在则新建)Checkout:
:仓库中的内容被复制到工作目录。文件、提交、分支等都可从仓库检
出。

暂存区,暂存索引或索引(Staging Area or Staging Index or Index):
Git 目录中的一个文件,用于存储下一次提交的相关信息,
相当于 Git 处理下一次提交的准备区域。暂存区中的文件将被添加进仓库。

SHA:
SHA 基本上就是每次提交的 ID 号码,是由 40 个字符(0-9 和 a-f)组成的字符串,根据 Git 中的文件内容或目录结构计算而成。“SHA”是“SHA散列”的简写。以下就是一个 SHA 的例子:
e2adf8ae3e2e4ed40add75cc44cf9d0a869afeb6

分支Branch:
当创造出一个新的开发线,并从开发主线分离后,就产生了一个分支。这条开发线可在不影响主线的同时继续工作。分支很有用,比如你要修改或是开发一项新的功能,你为了测试方便,你可能屏蔽了许多其它的逻辑,但你可能无法几天都在做这一件事,你也可能要去临时修改其它的BUG或是其它的功能,你就可以将
这耗时这部分工作放在Branch中去开发!完成了再合并回来。

安装 Git

要下载 Git:(嗯,要翻墙,我用的Astrill,还是不错的,就是贵了点儿,用蓝灯也不错)

  1. 转到:https://git-scm.com/downloads

  2. 下载 Windows 版软件

  3. 安装 Git 并选择所有默认选项

安装完毕后,你应该能够在命令行工具中运行 git。如果显示了使用信息,则一切正常!

安装过程中,会有如下提示:

image.png

你要使用哪种编辑器做为Git的默认编辑器,默认是vim(https://www.vim.org/download.php)
也可以选择Visual Studio Code,Notepad++,看个人的喜好。

安装完毕后,你应该能够在命令行工具中运行 git。如果显示了使用信息,则一切正常!
*输入cd回车可以回到shell的主目录。

默认情况下打开的是系统的用户目录,如果想要定位到项目的代码库下,可以按照如下设置:

修改Git bash的启动默认路径:

image.png

右击Git.exe图标,在起始位置修改即可。
(https://blog.csdn.net/mypotatolove/article/details/40152399)
补充:windows要去除快捷方式目标中的"--cd-to-home"

另外一种方式 ,也是教程中说到的,将代码库的位置放在快捷访问处,通过在文件夹中右击Git Bash Here 也可以打开Shell.


image.png

我这里是加入到了收藏夹,右击添加即可,操作是一样的

如何在命令行打开项目库的文件夹:
输入"start ." start+peroid(句号)回车即可。

初次配置 Git

在开始使用 Git 之前,你需要配置 Git。在命令行工具中运行以下每行,确保所有选项都已被配置好。

设置你的 Git 用户名
git config --global user.name "<Your-Full-Name>"

设置你的 Git 邮箱
git config --global user.email "<your-email-address>"

确保 Git 输出内容带有颜色标记
git config --global color.ui auto

对比显示原始状态
git config --global merge.conflictstyle diff3

git config --list

*用户名和邮箱地址是本地Git客户端的一个变量,不随git库而改变。
每次commit都会用用户名和邮箱纪录。
github的contributions统计就是按邮箱来统计的。

查看用户名、邮箱命令
git config user.name git config user.email

修改用户名、邮箱命令
git config --global user.name "xxxx" git config --global user.email "xxxxx@xxx.com"

https://blog.csdn.net/s740556472/article/details/77623453

Git 与代码编辑器

最后一个配置步骤是让 Git 能与你的代码编辑器结合使用。以下是三个最热门的代码编辑器。如果你使用的是其他编辑器,则在 Google 中搜索“修改 Git 默认编辑器为 X 编辑器”(将 X 替换为你的代码编辑器的名称)。

Atom Editor 设置
git config --global core.editor "atom --wait"
Sublime Text 设置
git config --global core.editor "C:/Program Files/Sublime Text 2/sublime_text.exe' -n -w"
VSCode 设置
git config --global core.editor "code --wait"

使用默认的vim编辑器打开:
git config --global core.editor vim

我这里是使用的VSCode设置。
如果是使用的vim
(vim的退出方式 :按ESC键 跳到命令模式,然后输入:q(不保存)或者:wq(保存) 退出。)

插一段:什么是shell? 什么是bash?

https://blog.csdn.net/lizhidefengzi/article/details/74066590?locationNum=4&fps=1
https://blog.csdn.net/shuipengpeng/article/details/80302717

shell 是一个命令语言解释器(command-language interpreter)。拥有自己内建的 shell 命令集。

shell是用户和Linux(或者更准确的说,是用户和Linux内核)之间的接口程序。你在提示符下输入的每个命令都由shell先解释然后传给Linux内核。

Shell有很多中,这里列出其中几种

  • Bourne SHell(sh)
  • Bourne Again SHell(bash)
  • C SHell(csh)
  • KornSHell(ksh)
  • zsh

各个shell的功能都差不太多,在某些语法的下达下面有些区别,Linux预设就是bash。

下面一节介绍如何通过Git创建代码仓库。

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

推荐阅读更多精彩内容