前言:
坦白讲,到目前为止, 我在全职的工作中还没有使用Git进行版本控制的开发,
只是自己没事儿在上面搞一搞,用的并不多,学习得并不系统,一直就知道udcacity上
有免费的Git和GitHub相关的教程,讲解得很不错,一直拖拖拖,没有去学习,今天
趁着给小电车充电的间隙(5个多小时慢充时间里)在咖啡馆里坐着,就把视频给看了,记录下笔民,本笔记的所有内容均来自Udcacity(thanks alot)
工作中,我一直在使用SVN进行版本控制多人协作开发,SVN是中心式的,
而Git则是分布式的,基本上几十种版本控制系统,主要分为这两类:
集中式模型(Centralized) - 所有用户都连接到一个中央的主仓库(master repository)
分布式模型(Distributed) - 每个用户都在自己的计算机上拥有完整的仓库(repository)
Git和GitHub是两个不同的东西。
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,还是不错的,就是贵了点儿,用蓝灯也不错)
下载 Windows 版软件
安装 Git 并选择所有默认选项
安装完毕后,你应该能够在命令行工具中运行 git
。如果显示了使用信息,则一切正常!
安装过程中,会有如下提示:
你要使用哪种编辑器做为Git的默认编辑器,默认是vim(https://www.vim.org/download.php)
也可以选择Visual Studio Code,Notepad++,看个人的喜好。
安装完毕后,你应该能够在命令行工具中运行 git。如果显示了使用信息,则一切正常!
*输入cd回车可以回到shell的主目录。
默认情况下打开的是系统的用户目录,如果想要定位到项目的代码库下,可以按照如下设置:
修改Git bash的启动默认路径:
右击Git.exe图标,在起始位置修改即可。
(https://blog.csdn.net/mypotatolove/article/details/40152399)
补充:windows要去除快捷方式目标中的"--cd-to-home"
另外一种方式 ,也是教程中说到的,将代码库的位置放在快捷访问处,通过在文件夹中右击Git Bash Here 也可以打开Shell.
我这里是加入到了收藏夹,右击添加即可,操作是一样的
如何在命令行打开项目库的文件夹:
输入"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.email
修改用户名、邮箱命令
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创建代码仓库。